• 自学Python系列(四)—— 字典和集合(一)


    4.1 创建和访问字典

    Python中的字典怎么理解呢,比如你打开《新华字典》,想要查找“猪”这个字,你首先要检索的是字母z,然后再找到zhu的发音,最后再找到猪的释义:一种家养或者野生的杂食性动物。所以在Python的字典中,把这个字称作键(key),对应的含义称为值(value)。先来看个例子:

    1. dict1 = {"李宁":"一切皆有可能", "耐克":"Just do it", "阿迪达斯":"Impossible is nothing"}
    2. dict1
    3. >>> {'李宁': '一切皆有可能', '耐克': 'Just do it', '阿迪达斯': 'Impossible is nothing'}
    4. for each in dict1:
    5. print("%s -> %s" % (each, dict1[each]))
    6. >>> 李宁 -> 一切皆有可能
    7. 耐克 -> Just do it
    8. 阿迪达斯 -> Impossible is nothing

    字典的使用是比较简单的,用标志性的符号表示({})表示,字典有“键”和“值”共同组成,每一对键值组合称为“项” ,在上边的例子中,李宁,耐克,阿迪达斯,这些就是键,而一切皆有可能,Just do it, Impossible is nothing,这些就是对应的值。注意:字典的键必须独一无二,但值不必。

    1. empty = {}#创建一个空字典
    2. empty
    3. >>> {}
    4. #####使用dict()内置函数来创建#####
    5. dict1 = dict((('A',10),('B',20),('C',30),('D',40)))
    6. dict1
    7. >>> {'A': 10, 'B': 20, 'C': 30, 'D': 40}
    8. ####简单一点的写法#####
    9. dict1 = dict(A = 10, B = 20, C = 30, D = 40)
    10. dict1
    11. >>> {'A': 10, 'B': 20, 'C': 30, 'D': 40}

    使用dict()函数时,要注意dict()的参数可以是一个序列,但不能是多个,所以在例子中的打包成了一个元组。访问字典里的值与访问序列类似,只需要把键放入方括号即可。比如dict['A']。

    最后,字典是不允许同一个键出现两次,如果同一个键被赋值两次,后一个值会被记住。

    1. words = {'李白':"床前明月光,疑是地上霜", '杜甫': "会当凌绝顶,一览众山小", '李白':"天生我材必有用,千金散尽还复来"}
    2. words
    3. >>> {'李白': '天生我材必有用,千金散尽还复来', '杜甫': '会当凌绝顶,一览众山小'}

    4.2 各种内置方法

    (1)fromkeys()方法

    fromkeys()方法用于创建一个并返回一个新的字典,它有两个参数,一个参数是字典的键;第二个参数是可选的,是传入键对应的值,如果不传入,则默认为None。举个例子:

    1. dict2 = {}
    2. dict2.fromkeys((1,2,3), "numbers")
    3. >>> {1: 'numbers', 2: 'numbers', 3: 'numbers'}
    4. dict2 = {}
    5. dict2.fromkeys((1,2,3))
    6. >>> {1: None, 2: None, 3: None}

     (2)keys(), values(), items()方法

    这三种方法分别对应访问字典的三种方法,keys()用于返回字典里边里的键,values()用于返回字典中的所有值,item()用于返回字典中所有的键值对

    1. dict3 = {}
    2. dict3 = dict3.fromkeys(range(32), "桃子")
    3. dict3.keys()
    4. >>> dict_keys([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31])
    5. dict3 = {}
    6. dict3 = dict3.fromkeys(range(32), "桃子")
    7. dict3.values()
    8. >>> dict_values(['桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子', '桃子'])
    9. dict3 = {}
    10. dict3 = dict3.fromkeys(range(32), "桃子")
    11. dict3.items()
    12. >>> dict_items([(0, '桃子'), (1, '桃子'), (2, '桃子'), (3, '桃子'), (4, '桃子'), (5, '桃子'), (6, '桃子'), (7, '桃子'), (8, '桃子'), (9, '桃子'), (10, '桃子'), (11, '桃子'), (12, '桃子'), (13, '桃子'), (14, '桃子'), (15, '桃子'), (16, '桃子'), (17, '桃子'), (18, '桃子'), (19, '桃子'), (20, '桃子'), (21, '桃子'), (22, '桃子'), (23, '桃子'), (24, '桃子'), (25, '桃子'), (26, '桃子'), (27, '桃子'), (28, '桃子'), (29, '桃子'), (30, '桃子'), (31, '桃子')])

    (3)get()方法

    get()方法也有两个参数,第一个参数为字典的键,第二个为可设置参数,不设置默认为None。

    1. dict3.get(22)
    2. >>> '桃子'

    (4)copy(),pop(),popitem(),update()

    1. a = {1:"one", 2:"two", 3:"three"}#####复制一个相同的字典
    2. b = a.copy()
    3. b
    4. >>> {1: 'one', 2: 'two', 3: 'three'}
    5. a = {1:"one", 2:"two", 3:"three"}###弹出给定键对应的值
    6. b = a.pop(2)
    7. b
    8. >>> "two"
    9. a = {1:"one", 2:"two", 3:"three"}###弹出一个项,默认弹出末尾的项
    10. b = a.popitem()
    11. b
    12. >>> (3, 'three')
    13. b = {1:"one", 2:"two", 3:"three"}####更新字典
    14. b.update(pin = "four")
    15. b
    16. >>> {1: 'one', 2: 'two', 3: 'three', 'pin': 'four'}

  • 相关阅读:
    OSG第三方库编译之三十三:libspatialindex编译(Windows、Linux、Macos环境下编译)
    【PAT甲级】1058 A+B in Hogwarts
    微信小程序开发食堂订餐点餐项目+后台
    OpenCV 颜色检测| color detection
    全新叙事赛道:诺亚引领不良资产合成潮流,DeFi生态再添“万亿”动力
    Kubernetes(七)修改 pod 网络(flannel 插件)
    数据存储策略——lsm-tree
    RabbitMQ 消息丢失解决 (高级发布确认、消息回退与重发、备份交换机)
    anaconda pip下载使用不了镜像,报错
    C语言--每日五道选择题--Day3
  • 原文地址:https://blog.csdn.net/weixin_51875896/article/details/132625305