翼度科技»论坛 编程开发 python 查看内容

Python之字典遍历元素(4种方式)

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
第一种:for in
  1. girl_dict= {"China": "小美", "Japan": "图多天光", "Korea": "斯密达美"}
  2. for everyKey in girl_dict:
  3.     print ("key:" + everyKey + "value:" + girl_dict[everyKey])
复制代码
 
输出结果
  1. key:japan  value:图多天光
  2. key:korean  value:斯密达美
  3. key:china  value:小美
复制代码
 
第二种:使用dict的keys()方法
dict的keys()方法返回由所有key组成的list,for in dict 等同于 for in dict.keys()
  1. girl_dict= {"China": "小美", "Japan": "图多天光", "Korea": "斯密达美"}
  2. for everyKey in girl_dict.keys():
  3.     print ("key:" + everyKey)
复制代码
 
输出结果
  1. key:japan
  2. key:korean
  3. key:china
复制代码
 
第三种:使用values()方法
遍历key-value中的每一个value值
  1. girl_dict= {"China": "小美", "Japan": "图多天光", "Korea": "斯密达美"}
  2. for every_value in girl_dict.values():
  3.     print ("value:" + every_value)
复制代码
 
输出结果:
  1. value:小美
  2. value:图多天光
  3. value:斯密达美
复制代码
 
第四种:使用dict的items()方法
遍历字典中的每一个key-value
  1. girl_dict= {"China": "小美", "Japan": "图多天光", "Korea": "斯密达美"}
  2. for everyEntry in girl_dict.items():
  3.     print (everyEntry)
复制代码
 
输出结果:每一个Entry,都是key和value组成的一个元组对象
  1. ('japan', '\xe5\x9b\xbe\xe5\xa4\x9a\xe5\xa4\xa9\xe5\x85\x89')
  2. ('korean', '\xe6\x96\xaf\xe5\xaf\x86\xe8\xbe\xbe\xe7\xbe\x8e')
  3. ('china', '\xe5\xb0\x8f\xe7\xbe\x8e')
复制代码
 
如果是把每个元组的元素都分别取出来,就会把key和value全部输出
  1. print (everyEntry[0]  + ":" + everyEntry[1])
复制代码
 
输出结果
  1. japan:图多天光
  2. korean:斯密达美
  3. china:小美
复制代码
 
备注:items()方法返回的是dict_items对象,而dict_items的内部则持有的数据结构是[(“key”,“value”),(“key”,“value”),(“key”,“value”)]
第五种:使用dict的items()方法,然后直接解包元组
每一轮遍历取出来的Entry元素是一个tuple对象,此时将元组对象的两个元素直接赋值给定义的两个变量(这里自动执行解包元组操作)
  1. girl_dict= {"China": "小美", "Japan": "图多天光", "Koean": "斯密达美"}
  2. for key,value  in girl_dict.items():  #for (key,value) in girl_dict.items() 这样加上括号也可以
  3.     print (key + ":" + value)
  4. # Python资料源码电子书免费获取裙:708525271  
复制代码
 
输出结果
  1. japan:图多天光
  2. korean:斯密达美
  3. china:小美
复制代码
 
总结
dict遍历元素的顺序与你插入元素、访问元素的顺序均无关……需要有序dict的OrderedDict(类似于Java中的LinkedHashMap)

来源:https://www.cnblogs.com/hahaa/p/17050620.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具