zoukankan      html  css  js  c++  java
  • 2.3.1 字典创建和元素添加、修改与删除

      使用赋值运算符“=”将一个字典赋值给一个变量可创建一个字典变量。

    1 >>> a_dict = {'server':'db.diveintopython3.org','database':'mysql'}
    2 >>> 
    3 >>> a_dict
    4 {'server': 'db.diveintopython3.org', 'database': 'mysql'}
    5 >>> 
    6 >>> 
    7 >>> type(a_dict)
    8 <class 'dict'>

      也可使用内置函数dict()通过已有数据快速创建字典:

     1 >>> keys = ['a','b','c','d']
     2 >>> values = [1,2,3,4]
     3 >>> 
     4 >>> a_dict = dict(zip(keys,values))
     5 >>> 
     6 >>> a_dict
     7 {'c': 3, 'b': 2, 'a': 1, 'd': 4}
     8 >>> 
     9 >>> x = dict()                   #空字典
    10 >>> 
    11 >>> x
    12 {}
    13 >>> 
    14 >>> type(x)                     #查看对象类型
    15 <class 'dict'>
    16 >>> 

      

      还可以使用内置函数dict()根据给定的“键:值”来创建字典:

    1 >>> d = dict(name='dong',age=30)
    2 >>> 
    3 >>> d
    4 {'name': 'dong', 'age': 30}
    5 >>> 

      还可以给定内容为“键”,创建“值”为空的字典:

    1 >>> adict = dict.fromkeys(['name','age','sex'])
    2 >>> 
    3 >>> adict
    4 {'name': None, 'sex': None, 'age': None}
    5 >>> 

      当以指定“键”为下标为指点元素赋值时,有两种含义:

        (1)若该“键”存在,则表示修改该“键”对应的值;

        (2)若该键不存在,则表示添加一个新的“建:值”,也就是添加一个新的字典元素。

     1 >>> adict = {'age':35,'name':'Dong','sex':'male'}
     2 >>> 
     3 >>> adict['age'] = 38        #修改元素值
     4 >>> 
     5 >>> adict
     6 {'name': 'Dong', 'sex': 'male', 'age': 38}
     7 >>> 
     8 >>> adict['address'] = 'SDIBT'
     9 >>> 
    10 >>> adict
    11 {'address': 'SDIBT', 'name': 'Dong', 'sex': 'male', 'age': 38}
    12 >>> 

      

      使用字典对象的update()方法可以将另一个字典的“键:值”一次性全部添加到当前字典对象,如果两个字典存在相同的“键”,则以另一个字典中的“值”为准对当前字典进行更新。

     1 >>> adict
     2 {'address': 'SDIBT', 'name': 'Dong', 'sex': 'male', 'age': 38}
     3 >>> 
     4 >>> bdict = {'score':[98,97]}
     5 >>> 
     6 >>> adict.update(bdict)
     7 >>> 
     8 >>> adict
     9 {'address': 'SDIBT', 'score': [98, 97], 'name': 'Dong', 'sex': 'male', 'age': 38}
    10 >>> 
    11 >>> adict.update(cdict)
    12 >>> 
    13 >>> adict.items()
    14 dict_items([('name', 'Dong'), ('address', 'SDIBT'), ('score', [66, 88]), ('sex', 'male'), ('age', 38)])
    15 >>> 

      

      使用del命令可以删除整个字典,也可以删除字典中指定的元素。例如,继续上面的代码:

     1 >>> adict
     2 {'name': 'Dong', 'address': 'SDIBT', 'score': [66, 88], 'sex': 'male', 'age': 38}
     3 >>> 
     4 >>> adict.items()                  #返回所有元素
     5 dict_items([('name', 'Dong'), ('address', 'SDIBT'), ('score', [66, 88]), ('sex', 'male'), ('age', 38)])
     6 >>> 
     7 >>> del adict['age']               #删除字典元素
     8 >>> 
     9 >>> adict
    10 {'name': 'Dong', 'address': 'SDIBT', 'score': [66, 88], 'sex': 'male'}
    11 >>> 
    12 >>> del adict                      #删除整个字典
    13 >>> adict
    14 Traceback (most recent call last):
    15   File "<pyshell#259>", line 1, in <module>
    16     adict
    17 NameError: name 'adict' is not defined
    18 >>> 
    19 >>> #字典对象被删除后不再存在

      也可以使用字典对象的pop()和popitem()方法弹出并删除指定的元素,例如:

     1 >>> adict = {'address': 'SDIBT', 'score': [98, 97], 'name': 'Dong', 'sex': 'male', 'age': 38}
     2 >>> 
     3 >>> adict.popitem()      #弹出一个元素并从字典中删除,对空字典会抛出异常
     4 ('address', 'SDIBT')
     5 >>> 
     6 >>> adict
     7 {'score': [98, 97], 'name': 'Dong', 'sex': 'male', 'age': 38}
     8 >>> 
     9 >>> adict.pop('sex')     #弹出指定键对应的元素
    10 'male'
    11 >>> 
    12 >>> adict
    13 {'score': [98, 97], 'name': 'Dong', 'age': 38}
    14 >>> 

      字典对象的clear()方法用于清空字典对象中的所有元素,copy()方法用于返回字典对象的浅复制。

  • 相关阅读:
    try catch finally return
    github结合TortoiseGit使用sshkey,无需输入账号和密码
    github上fork别人的代码之后,如何保持和原作者同步的更新
    第9章 浅度和深度复制
    9.7结构类型
    excel在msdn上的说明文档
    9.6接口和抽象类
    [LeetCode]N-Queens II
    鸟哥Linux私房菜知识汇总8至9章
    Memcahce(MC)系列(三)Memcached它PHP转让
  • 原文地址:https://www.cnblogs.com/avention/p/8544616.html
Copyright © 2011-2022 走看看