当前位置:   article > 正文

《Python 编程从入门到实践》———— 字典遍历_为什么程序运行时,python会自动遍历字典

为什么程序运行时,python会自动遍历字典

 一个Python字典可能只包含几个键—值对,也可能包含数百万个键—值对。鉴于字典可能包含大量的数据,Python支持对字典遍历。字典可用于以各种方式存储信息,因此有多种遍历字典的方式:可遍历字典的所有键—值对、键或值。
  1. 遍历所有的键—值对
  我们可以像遍历列表一样使用 for 循环。不同的是:遍历字典的 for 循环,需声明两个变量,用于存储键—值对中的键和值。对于这两个变量,可使用任何名称。for 语句的第二部分包含字典名和方法items(),它返回一个键—值对列表。接下来,for循环依次将每个键—值对存储到指定的两个变量中。即便遍历字典时,键—值对的返回顺序也与存储顺序不同。Python不关心键—值对的存储顺序,而只跟踪键和值之间的关联关系。

# 输入
person = {'Name':'Youth','Age':'17'}
for key,value in person.items():
    print("key is: "+key,"value is: "+value)
    
# 输出
key is: Name value is: Youth
key is: Age value is: 17
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

  2. 遍历字典中的所有键
  在不需要使用字典中的值时,方法keys()很有用。遍历字典时,会默认遍历所有的键,因此,如果将代码中的 for key in person.keys(): 替换为 for key in person: ,输出将不变。如果显式地使用方法keys()可让代码更容易理解。方法keys()并非只能用于遍历;实际上,它返回一个列表,其中包含字典中的所有键

# 输入
person = {'Name':'Youth','Age':'17'}
for key in person.keys():
    print("key is: "+key)

for key in person:
    print("key is: "+key)

    
# 输出
key is: Name
key is: Age
key is: Name
key is: Age
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

  3. 遍历字典中的所有值
  如果需要处理的信息主要是字典包含的值,可使用方法values(),它返回一个值列表,而不包含任何键。这种做法提取字典中所有的值,而没有考虑是否重复。通过对包含重复元素的列表调用set(),可让Python找出列表中独一无二的元素,并使用这些元素来创建一个集合。

# 输入
person = {
    'Name1':'Youth','Age1':'17',
    'Name2':'Tom','Age2':'17',
    }
for value in person.values():
    print("value is: "+ value)
    
for value in set(person.values()):
    print("value is: "+value)

    
# 输出
value is: Youth
value is: 17
value is: Tom
value is: 17
value is: 17
value is: Tom
value is: Youth
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

  4. 按顺序遍历字典中的所有键
  字典总是明确地记录键和值之间的关联关系,但获取字典的元素时,获取顺序是不可预测的。这不是问题,通常来说你想要的只是获取与键相关联的正确的值。要以特定的顺序返回元素,可以在 for 循环中对返回的键进行排序。为此,可使用函数 sorted() 来获得按特定顺序排列的键列表。

# 输入
person = {
    'Name1':'Youth','Age1':'17',
    'Name2':'Tom','Age2':'18',
    }
for value in sorted(person.values()):
    print("value is: "+ value)

    
# 输出
value is: 17
value is: 18
value is: Tom
value is: Youth
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/651407
推荐阅读
相关标签
  

闽ICP备14008679号