• python字典


    字典定义

    字典python语言中唯一的映射类型。这种映射类型由(key)和(value)组成,是“键值对”的无序可变序列
    定义字典时,每个元组的键和值用冒号隔开,相邻元素用逗号分隔,所有的元组放在一对大括号“ { ”和“ } ”中。字典中的键可以是python中任意不可变类型,例如:整数/实数/复数/字符串/元组等。键不能重复,而值可以重复一个键只能对应一个值,但多个键可以对应相同的值。例如:

    {1001:'alice',1002'tom',1003:'emlily'}
    {(1,2,3):'a',65.5,'b'}
    {'alice':95,'beth':82,'tom':65.5,'emliy':95}
    
    • 1
    • 2
    • 3

    创建字典

    1. 使用 ‘ = ’ 将一个字典赋给一个变量即可创建一个字典变量。
    >>> a={'alice':95,'beth':82,'tom':65.5,'emliy':95}
    >>> a
    {'alice': 95, 'beth': 82, 'tom': 65.5, 'emliy': 95}
    
    • 1
    • 2
    • 3

    也可以创建空字典

    >>> a={}
    >>> a
    {}
    
    • 1
    • 2
    • 3
    1. 使用内建dict()函数,通过其他映射(例如其他字典)或者键值对方式建立字典。
      例如:
      映射函数的方式建立字典,zip函数返回tuple列表
    >>> a=dict(zip(['one','two','three'],[1,2,3]))
    >>> a
    {'one': 1, 'two': 2, 'three': 3}
    
    • 1
    • 2
    • 3

    1.以键值对创建字典

    >>> b=dict(one=1,two=2,three=3)
    >>> b
    {'one': 1, 'two': 2, 'three': 3}
    
    • 1
    • 2
    • 3

    2.以键值对形式的列表建立字典

    >>> c=dict([('one',1),('two',2),('three',3)])
    >>> c
    {'one': 1, 'two': 2, 'three': 3}
    
    • 1
    • 2
    • 3

    3.以键值对形式的元组创建字典

    >>> d=dict((('one',1),('two',2),('three',3)))
    >>> d
    {'one': 1, 'two': 2, 'three': 3}
    
    • 1
    • 2
    • 3

    4.创建空字典

    >>> e=dict()
    >>> e
    {}
    
    • 1
    • 2
    • 3

    5.dict.fromkeys(对象(,可选初值))方法创建列表
    对象为可迭代对象;
    如果不填写初值,则默认None;

    >>> d=dict.fromkeys("first")
    >>> d
    {'f': None, 'i': None, 'r': None, 's': None, 't': None}
    >>> d['f']=100
    >>> d['s']=101
    >>> d
    {'f': 100, 'i': None, 'r': None, 's': 101, 't': None}
    >>> f=dict.fromkeys("first",100)#初值100
    >>> f
    {'f': 100, 'i': 100, 'r': 100, 's': 100, 't': 100}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    字典的读取

    (1) 与列表和元组类似,可以使用下标的方法来访问字典中的元素。字典的下标是,若使用的键不存在,则提示异常错误。例如:

    >>> a={'alice':95,'beth':82,'tom':65.5,'emliy':95}
    >>> a[tom]
    Traceback (most recent call last):
      File "", line 1, in <module>
        a[tom]
    NameError: name 'tom' is not defined
    >>> a['tom']
    65.5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    (2)使用字典对象的get()方法获取指定“ 键 ”对应的“ 值 ”。get()方法的一般形式为:dict.get(key,default=None)
    其中:key是指在字典中要查询的“ ”,default是指指定的“ 键 ”值不存在时返回的值。该方法相当于一条ifelse…语句,如果参数key在字典中则返回key对应的value值,字典将返回dict[key];如果参数key不在字典中则返回参数default;如果没有指定default,默认值为None。例如:

    >>> a['tom']
    65.5
    >>> a.get('alice')
    95
    >>> a.get('al','address')
    'address'
    >>> a.get('al')
    >>> print(a.get('al'))
    None
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    字典的添加与修改

    (1)字典没有预定义大小的限制,可以随时向字典添加新的键值对,或者修改现有键所关联的值。添加和修改的方法相同,都是使用“字典变量名[键名]=键值”的形式。区分究竟是添加还是修改,需要看键名与字典中的键名是否有重复,若该“键”存在,则表示修改该“键”的值;若不存在,则表示添加一个新的“键值对”,也就是添加一个新的元素。例如:

    >>> a['brth']=79     #添加
    >>> a
    {'alice': 95, 'beth': 82, 'tom': 65.5, 'emliy': 95, 'brth': 79}
    >>> a['beth']=79    #修改
    >>> a
    {'alice': 95, 'beth': 79, 'tom': 65.5, 'emliy': 95, 'brth': 79}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    >>> a
    {'alice': 95, 'beth': 79, 'tom': 65.5, 'emliy': 95, 'brth': 79}
    >>> b={'eric':98,'tom':82}
    >>> a.update(b)
    >>> a
    {'alice': 95, 'beth': 79, 'tom': 82, 'emliy': 95, 'brth': 79, 'eric': 98}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    删除字典中的元素

    (1)使用del命令删除字典中指定”对应的元素。例如:

    >>> a
    {'alice': 95, 'beth': 79, 'tom': 82, 'emliy': 95, 'brth': 79, 'eric': 98}
    >>> del a['beth']
    >>> a
    {'alice': 95, 'tom': 82, 'emliy': 95, 'brth': 79, 'eric': 98}
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (2)使用字典对象的pop()方法删除并返回指定“”的元素。例如:

    >>> a
    {'alice': 95, 'tom': 82, 'emliy': 95, 'brth': 79, 'eric': 98}
    >>> a.pop('alice')
    95
    >>> a
    {'tom': 82, 'emliy': 95, 'brth': 79, 'eric': 98}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    (3)使用字典对象的popitem()方法删除字典元素。由于字典是无序的popitem()实际删除的是一个随机的元素。例如:

    >>> a
    {'tom': 82, 'emliy': 95, 'brth': 79, 'eric': 98}
    >>> a.popitem()
    ('eric', 98)
    >>> a
    {'tom': 82, 'emliy': 95, 'brth': 79}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    (4)使用字典对象的clear()方法删除字典的所有元素。例如:

    >>> a
    {'tom': 82, 'emliy': 95, 'brth': 79}
    >>> a.clear()
    >>> a
    {}
    
    • 1
    • 2
    • 3
    • 4
    • 5

    删除字典

    使用del命令删除字典。例如:

    >>> a
    {}
    >>> del a
    >>> a
    Traceback (most recent call last):
      File "", line 1, in <module>
        a
    NameError: name 'a' is not defined
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    字典的遍历

    1. 遍历字典的关键字
      使用字典的keys()方法,以列表的方式返回字典的所有的“键”。
      例:
    >>> a={'alice':95,'beth':82,'tom':65.5,'emliy':95}
    >>> a.keys()
    dict_keys(['alice', 'beth', 'tom', 'emliy'])
    
    • 1
    • 2
    • 3
    1. 遍历字典的值
      使用字典的values()方法,以列表的方式返回字典的所有“值”。
      例:
    >>> a.values()
    dict_values([95, 82, 65.5, 95])
    
    • 1
    • 2
    1. 遍历字典元素
      使用字典的items()方法,以列表的方式返回字典的所有元素(键/值)。
      例:
    >>> a.items()
    dict_items([('alice', 95), ('beth', 82), ('tom', 65.5), ('emliy', 95)])
    
    • 1
    • 2

    字典的嵌套

    >>> d={'one':{'sum':100,'stu':20},'two':{"sum":120,'stu':33}}
    >>> d['one']
    {'sum': 100, 'stu': 20}
    >>> d['one']['sum']
    100
    >>> d['two']['stu']
    33
    >>> d={'one':[100,20],'two':[120,33]}
    >>> d['one'][1]
    20
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    字典推导式

    >>> d={'f': 100, 'i': 12, 'r': 10, 's': 50, 't': 110}
    >>> b={v:k for k,v in d.items()}
    >>> b
    {100: 'f', 12: 'i', 10: 'r', 50: 's', 110: 't'}
    >>> b={v:k for k,v in d.items() if v>100}
    >>> b
    {110: 't'}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

  • 相关阅读:
    FFmpeg入门详解之117:视频监控的架构和流程
    Flink流式框架过程问题
    【用unity实现100个游戏之13】复刻类泰瑞利亚生存建造游戏——包括建造系统和库存系统
    思科路由器配置
    模型量化笔记--对称量化和非对称量化
    Android OpenGLES3.0 开发 :光照基础
    量化系统交易者想要取得长远的成功需要具备什么条件呢?
    14种神笔记方法,只需选择1招,让你的学习和工作效率提高100倍!
    Mysql语法四:索引查找和了解何为事务
    微信小程序获取微信用户步数
  • 原文地址:https://blog.csdn.net/l16_7_35/article/details/133936276