51学通信论坛2017新版

标题: 字典的基本和常见操作 [打印本页]

作者: admin    时间: 2018-8-7 22:30
标题: 字典的基本和常见操作
字典的基本和常见操作
  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和王五
复制代码





欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/) Powered by Discuz! X3