我正在阅读流利的python书。它说诸如list
,set
之类的所有集合都是可迭代的。但是set
不是序列。字典也不是序列,也就是说,序列中的项不能通过索引访问,例如set[9]
,对吗?有点像可以遍历链接列表和列表,但是只有数组才能通过索引快速获取值。我想知道如何遍历字典?
请原谅我的英语不好
答案 0 :(得分:1)
Python中的所有容器都可以像这样遍历:
d = { 1: 'Blue', 2: 'Green' }
for k in d:
print(k)
这将迭代字典的键,即1和2,等效于此:
for k in d.keys():
print(k)
如果仅需要值,则可以这样做:
for v in d.values():
print(v)
如果同时需要键和值,请使用以下命令:
for k, v in d.items():
print(k, v)
序列与无序容器(例如set或dict)之间的主要区别是遍历期间没有保证的顺序。
有关dict API的更多详细信息,请参见https://docs.python.org/3.8/library/stdtypes.html#dict。
答案 1 :(得分:0)
如评论中所述,可以在docs中找到您问题的答案。答案是
d = {'a': 'b', 'c': 'd'}
# Way 1
for key in d:
print(key, d[key])
# Way 2
for key, value in d.items():
print(key, value)
答案 2 :(得分:0)
集合是唯一对象的无序集合。它们可以被迭代但不能像您在列表或数组上的操作那样被索引。
词典类似于其他语言的哈希或地图。它是无序的,由键值对组成。可以通过唯一键访问该值 在字典中。与集合不同,它可以迭代和索引 通过其键之一。
列表就像C ++中的数组或向量一样。可以通过从0到length-1的数字对它们进行迭代和索引。
因此,提一个问题,可以使用其键,值或键值对遍历字典。以下是遍历字典的3种方法:
for key in dict :
print(key)
for value in dict.values() :
print(value)
for key,value in dict.items() :
print(key,value)
希望这会有所帮助!