《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

  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

  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

  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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小趴菜_自动驾驶搬砖人

谢谢大爷赏饭吃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值