zoukankan      html  css  js  c++  java
  • python基础教程学习笔记四

    第四章 字典:当索引不好时

     字典的使用,示例代码如下:

    #创建字典

    >>> names=['alice','beth','cecli','dee-dee','earl']

    >>>numbers=['2341','9102','3158','0142','5551']

    >>>numbers[names.index('cecli')]

    '3158'

    创建和使用字典

    #创建字典

    >>>names=['alice':’2341’,'beth':’9102’]

    Dict函数,示例代码

    >>>times=[('name','retacn'),('age',32)]

    >>> times

    [('name','retacn'), ('age', 32)]

    >>>d=dict(times)

    >>> d

    {'age': 32,'name': 'retacn'}

    >>>d['name']

    'retacn'

    也可以通过关键字来创建字典

    >>>d=dict(name='gumby',age=42)

    >>> d

    {'age': 42,'name': 'gumby'}

    字典的基本操作

    Len(key)

    D[index] 指定位置的值

    D[index]=value 重新赋值

    Del d[index] 删除指定项

    Key in d  检查是否包含key项

    注:键可以是任何不可变类型

    #使用空列表不可以赋值

    >>>x=[]

    >>>x[42]='retacn'

    Traceback (mostrecent call last):

      File "<pyshell#13>", line 1,in <module>

        x[42]='retacn'

    IndexError: listassignment index out of range

    #如果想对列表赋值,需要对列表进行初始化

    >>>x=[None]*43

    >>>x[42]='retacn'

    >>>x[42]

    'retacn'

    #字典可以直接赋值

    >>>x={}

    >>>x[42]='yue'

    >>>x[42]

    'yue'

    字典实现简单数据库,示例代码如下:

    people={

           'retacn':{

                  'phone':18816170000,

                  'address':'山东省淄博市博山区'

                  },

           'yue':{

                  'phone':1234567,

                  'address':'boshan'

                  }

           }

    labels={

           'phone':'phone number',

           'address':'address'

           }

    name=input('Name:')

    request=input('phonenumber(p) or address(a)?')

    ifrequest=='p':key='phone'

    ifrequest=='a':key='address'

    if name inpeople:print("%s's %s is %s." % (name,labels[key],people[name][key]))

    程序运行结果如下:

    Name:retacn

    phone number(p)or address(a)?p

    retacn's phonenumber is 18816170000.

    字典的格式化字符串,示例代码如下:

    >>>phonebook={'retacn':'123456','yue':'654321'}

    >>>"retacn'sphone number is %(retacn)s." %phonebook

    "retacn'sphone number is 123456."

    字典的方法

    clear清除字典中的所有项,示例代码:

    >>>d={}

    >>>d['name']='retacn'

    >>>d['age']=32

    >>> d

    {'age': 32,'name': 'retacn'}

    >>>returned_value=d.clear()

    >>> d

    {}

    >>>print (returned_value)

    None

    注:如果被清空字典与其他字典关联,在清空后,关联字典也会被清空

    复制和深度复制

    >>>x={'username':'retacn','interest':['music','football']}

    >>>y=x.copy()

    >>> x

    {'username':'retacn', 'interest': ['music', 'football']}

    >>> y

    {'username':'retacn', 'interest': ['music', 'football']}

    >>>y['username']='yue'

    #remove是一个原位置修改方法

    >>>y['interest'].remove('football')

    >>> x

    {'username':'retacn', 'interest': ['music']}

    >>> y

    {'username':'yue', 'interest': ['music']}

    注,在指定键重新赋值 的时候字典不受影响,但是在修改后,原始字典也会改变

    >>>from copy import deepcopy

    >>>d={}

    >>>d['names']=['retacn','yue']

    >>>c=d.copy()

    >>>dc=deepcopy(d)

    >>> d['names'].append('three')

    >>> d

    {'names':['retacn', 'yue', 'three']}

    >>> c

    {'names':['retacn', 'yue', 'three']}

    >>> dc

    {'names':['retacn', 'yue']}

    Fromkeys使用给定的键创建新字典

    >>>{}.fromkeys(['name','age'])

    {'age': None,'name': None}

    >>>dict.fromkeys(['name','age'])

    {'age': None,'name': None}

    #设置默认值

    >>>dict.fromkeys(['name','age'],'(unknow)')

    {'age':'(unknow)', 'name': '(unknow)'}

    Get访问字典项的方法

    >>>d={}

    >>>print(d['name'])

    Traceback (mostrecent call last):

      File "<pyshell#63>", line 1,in <module>

        print(d['name'])

    KeyError: 'name'

    >>>print (d.get('name'))

    None

    >>>d.get('name','N/A')

    'N/A'

    >>>d['name']='retacn'

    >>>d.get('name')

    'retacn'

    Has_key检查字典中是否有给出的键,python3.0中没有此函数

    >>>d={}

    >>>d.has_key('name')

    Traceback (mostrecent call last):

      File "<pyshell#70>", line 1,in <module>

        d.has_key('name')

    AttributeError:'dict' object has no attribute 'has_key'

    Items和iteritems字典项以列表形式返回

    Keys和iterkeys字典中键以列表形式返回

    Pop 取得对应键值,该项从字典中移除

    Popitem 弹出随机的项

    Setdefault 取得给定键所对应的值,

    Update利用一个字典项更新另一个字典

    Values 和 itervalues以列表形式返回字典中的值

  • 相关阅读:
    NiosII软处理器快速入门- 10分钟学会NiosII(2)
    FFT算法的一种FPGA实现
    32个最热CPLDFPGA论坛
    NiosII软处理器快速入门- 10分钟学会NiosII(3)
    基于FPGA/CPLD设计与实现UART
    NiosII软处理器快速入门- 10分钟学会NiosII(1)
    LCD 的分类和显示原理
    iis6.0重写成html设置
    p标签之间的行距问题
    ie6 png图片透明方法
  • 原文地址:https://www.cnblogs.com/retacn-yue/p/6194207.html
Copyright © 2011-2022 走看看