迭代字典

考虑以下字典:

 d = {"a": 1, "b": 2, "c": 3}

要遍历其键,你可以使用:

for key in d:
    print(key)

输出:

"a"
"b"
"c"

这相当于:

for key in d.keys():
    print(key)

或者在 Python 2 中:

for key in d.iterkeys():
    print(key)

要遍历其值,请使用:

for value in d.values():
    print(value)

输出:

1
2
3

要遍历其键和值,请使用:

for key, value in d.items():
    print(key, "::", value)

输出:

a :: 1
b :: 2
c :: 3

请注意,在 Python 2 中,.keys().values().items() 返回 list 对象。如果你只需要通过结果迭代,则可以使用等效的 .iterkeys().itervalues().iteritems()

.keys().iterkeys().values().itervalues().items().iteritems() 之间的区别在于 iter*方法是生成器。因此,字典中的元素在评估时逐一产生。返回 list 对象时,所有元素都打包到一个列表中,然后返回进行进一步评估。

另请注意,在 Python 3 中,以上述方式打印的项目顺序不遵循任何顺序。