Python - 循环字典


与列表、元组或字符串不同,Python 中的字典数据类型不是序列,因为项目没有位置索引。然而,通过不同的技术仍然可以遍历字典。

实施例1

对字典对象运行一个简单的for循环会遍历其中使用的键。

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
for x in numbers:
   print (x)

它将产生以下输出-

10
20
30
40

实施例2

一旦我们能够获取密钥,就可以通过使用方括号运算符或 get() 方法轻松访问其关联值。

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
for x in numbers:
   print (x,":",numbers[x])

它将产生以下输出-

10 : Ten
20 : Twenty
30 : Thirty
40 : Forty

dict类的items()、keys()和values()方法分别返回视图对象dict_items、dict_keys和dict_values。这些对象是迭代器,因此我们可以对它们运行 for 循环。

实施例3

dict_items 对象是一个键值元组列表,可以在其上运行 for 循环,如下所示:

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
for x in numbers.items():
   print (x)

它将产生以下输出-

(10, 'Ten')
(20, 'Twenty')
(30, 'Thirty')
(40, 'Forty')

这里,“x”是来自 dict_items 迭代器的元组元素。我们可以进一步将这个元组解压到两个不同的变量中。

实施例4

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
for x,y in numbers.items():
   print (x,":", y)

它将产生以下输出-

10 : Ten
20 : Twenty
30 : Thirty
40 : Forty

实施例5

类似地,可以迭代 dict_keys 对象中的键集合。

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
for x in numbers.keys():
   print (x, ":", numbers[x])

dict_keys 和 dict_values 中的相应键和值位于同一索引处。在下面的示例中,我们有一个从 0 运行到字典长度的 for 循环,并使用循环变量作为索引并打印 key 及其对应的值。

实施例6

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
l = len(numbers)
for x in range(l):
   print (list(numbers.keys())[x], ":", list(numbers.values())[x])

上述两个代码片段产生相同的输出-

10 : Ten
20 : Twenty
30 : Thirty
40 : Forty