51学通信论坛2017新版

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4564|回复: 0
打印 上一主题 下一主题

[第6章:组合数据类型] 字典的基本和常见操作

[复制链接]

 成长值: 15613

  • TA的每日心情
    开心
    2022-7-17 17:50
  • 2444

    主题

    2544

    帖子

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    74104
    跳转到指定楼层
    楼主
    发表于 2018-8-7 22:30:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    字典的基本和常见操作
    1. #!/usr/bin/python3.6
    2. d = {"201801":"张三","201802":"李四","201803":"王五"}
    3. print(d)
    4. print(type(d))
    5. print(d['201801']) #输出为张三
    6. t={}        #创建一个空字典
    7. t["201804"]="赵六"  #往空字典添加元素
    8. print(t)
    9. '''
    10. 1.1 字典的操作函数
    11. len(d) #字典长度
    12. min、max(d) #求字典中的最小、最大的Key(不是value的比较)
    13. dict() #生成孔子殿
    14. '''
    15. print(min(d))  #结果是201801(按key进行排序)
    16. print(max(d))  #结果是201803
    17. '''
    18. 1.2 字典的操作方法
    19. d.keys()  #返回所有的键
    20. d.values() #返回所有的值
    21. d.items() #返回所有的键值对信息
    22. d.get(key,default) #如果key存在则返回对应的value,否则返回默认值default
    23. d.pop(key,default) #如果key存在则返回对应的value,同时删除键值对。否则返回默认值default
    24. d.popitem() #随机从字典取出一个键值对,以元组(key,value)形式返回,同时将该键值对从字典中删除
    25. d.clear() #删除所有键值对,清空字典
    26. '''
    27. print(d.keys()) #结果是:dict_keys(['201801', '201803', '201802'])
    28. print(d.values()) #结果是:dict_values(['张三', '王五', '李四'])
    29. print(d.items())  #结果是:dict_items([('201801', '张三'), ('201802', '李四'), ('201803', '王五')])
    30. print(type(d.keys())) #结果是:<class 'dict_keys'>
    31. a=list(d.keys())  #将字典的key值转换为列表
    32. print(a)   #打印该列表。结果是:['201801', '201803', '201802']。发现转换为列表顺序变了,因为字典是无序的。
    33. print(a[0]) #打印列表中的第一个值。结果是:201801
    34. b=list(d.items()) #将字典的键值对转换为列表
    35. print(b)  #打印该列表。结果是:[('201802', '李四'), ('201801', '张三'), ('201803', '王五')]
    36. print(b[0])#打印该列表中的第一个值。结果是('201802', '李四')
    37. print(d.get('201801'))  #搜索201801这个key,找到了。返回其值。结果是:张三
    38. print(d.get('201804','不存在')) #搜索201804这个key,没有。返回缺省值。结果是:不存在
    39. print(d.pop('201802')) #弹出201802对应的value。找到了,将值返回。结果是:李四
    40. print(d.pop('201804','不存在')) #弹出201804对应的value。没找到,返回默认值。结果是:不存在
    41. print(d.popitem())  #随机弹出一个键值对。返回该键值对的值。结果是:('201801', '张三')
    42. print(d)  #打印d当前的值。结果:{'201803': '王五'}
    43. d.clear() #清空字典。
    44. print(d)  #打印d。结果是:{}
    45. d = {"201801":"张三","201802":"李四","201803":"王五"}
    46. del d["201802"] #del删除某个指定的元素。给出key即可。
    47. print(d) #打印d,发现201802对应的键值对已删除。结果是:{'201803': '王五', '201801': '张三'}
    48. print('201801' in d) #检查201801这个key是否在字典中,发现在。结果是:True
    49. print('201804' in d) #检查201804这个key是否在字典中,发现不在。结果是:False
    50. '''
    51. 1.3 用for循环遍历字典
    52. '''
    53. d = {"201801":"张三","201802":"李四","201803":"王五"}
    54. for k in d:
    55.     print("字典的键和值分别是:{}和{}".format(k,d.get(k)))
    56. '''
    57. 执行结果如下:
    58. 字典的键和值分别是:201801和张三
    59. 字典的键和值分别是:201802和李四
    60. 字典的键和值分别是:201803和王五
    61. '''
    复制代码
    执行结果是:
    1. {'201801': '张三', '201802': '李四', '201803': '王五'}
    2. <class 'dict'>
    3. 张三
    4. {'201804': '赵六'}
    5. 201801
    6. 201803
    7. dict_keys(['201801', '201802', '201803'])
    8. dict_values(['张三', '李四', '王五'])
    9. dict_items([('201801', '张三'), ('201802', '李四'), ('201803', '王五')])
    10. <class 'dict_keys'>
    11. ['201801', '201802', '201803']
    12. 201801
    13. [('201801', '张三'), ('201802', '李四'), ('201803', '王五')]
    14. ('201801', '张三')
    15. 张三
    16. 不存在
    17. 李四
    18. 不存在
    19. ('201803', '王五')
    20. {'201801': '张三'}
    21. {}
    22. {'201801': '张三', '201803': '王五'}
    23. True
    24. False
    25. 字典的键和值分别是:201801和张三
    26. 字典的键和值分别是:201802和李四
    27. 字典的键和值分别是:201803和王五
    复制代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|51学通信技术论坛

    GMT+8, 2025-1-31 15:49 , Processed in 0.077109 second(s), 31 queries .

    Powered by Discuz! X3

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表