5.0、Python基础--字典(中)

本文详细介绍了如何在Python中遍历字典,包括键值对遍历、键的单独遍历、按顺序遍历和值的提取,以及利用sorted()函数实现有序遍历。实例演示了如何结合实际场景应用这些技巧,同时展示了如何通过集合消除重复值。
摘要由CSDN通过智能技术生成

5.2、遍历字典

5.2.1、遍历所有的键值对

前面所学只能访问一个字典中的信息,要访问整个字典中的信息,可用for循环来实现

user = {
    'user_name':'tom','user_sex':'man',
    'user_age':'45','user_score':'98'
    }
for key,value in user.items():
    print('Key: '+key)
    print('Value: ' + value)

输出结果:
Key: user_name
Value: tom
Key: user_sex
Value: man
Key: user_age
Value: 45
Key: user_score
Value: 98

代码解析
定义了一个user字典,用for遍历字典可声明两个变量,用于存储价值对中的键和值。这两个变量可以用任何名称,见名知意就好,for语句第二部分包含了字典名和方法items()方法,它返回一个键值对的列表。通过循环,将键值对的每一个值存到指定的两个变量中,并输出。

citys = {
    'tom':'北京',
    'tony':'成都',
    'mak':'上海',
    'amy':'西安',
    'mayun':'内蒙古',
}
for name,city in citys.items():
    print(name.title() + '‘s favorite city is ' + city.title())

输出结果:
Tom‘s favorite city is 北京
Tony‘s favorite city is 成都
Mak‘s favorite city is 上海
Amy‘s favorite city is 西安
Mayun‘s favorite city is 内蒙古
#用循环,即便字典存储的是成百上千乃至百万人的信息,也能轻松遍历出。

5.2.2、遍历字典中的所有键

在不需要使用字典中的值时,只需键时,可用keys()方法。

citys = {
    'tom':'北京',
    'tony':'成都',
    'mak':'上海',
    'amy':'西安',
    'mayun':'内蒙古',
}
for name in citys.keys():
    print(name.title())
输出结果:
Tom
Tony
Mak
Amy
Mayun

扩展:遍历字典时,会默认遍历所有的键,因此,将for name in citys.keys()替换为 for name in citys:,输出也不会变

citys = {
    'tom':'北京',
    'tony':'成都',
    'mak':'上海',
    'amy':'西安',
    'mayun':'内蒙古',
}
friends = ['tom','amy']
for name in citys.keys():
    print(name.title())
    if name in friends:
        print(' Hello ' + name.title() +
              ', I see your favorite City is '+
              citys[name].title()
              )
输出结果:
Tom
 Hello Tom, I see your favorite City is 北京
Tony
Mak
Amy
 Hello Amy, I see your favorite City is 西安
Mayun

还可以用keys()方法判断某个人是否参加了调查。


citys = {
    'tom':'北京',
    'tony':'成都',
    'mak':'上海',
    'amy':'西安',
    'mayun':'内蒙古',
}
if 'zhang' not in citys.keys():
    print('zhang,请你来参加调查')

输出结果:
zhang,请你来参加调查

not in 表示 不包含

5.2.3、按顺序遍历字典中的所有键(sorted())

字典只记录键和值之间的关系,但是获取字典元素时,顺序是不确定的,如果想以特定的顺序返回元素,可调用sorted()方法,此函数返回特定顺序排列的键列表的副本

citys = {
    'tom':'北京',
    'tony':'成都',
    'mak':'上海',
    'amy':'西安',
    'mayun':'内蒙古',
}
for name in sorted(citys.keys()):
    print(name.title()+', thanke you')

输出结果:
Amy, thanke you
Mak, thanke you
Mayun, thanke you
Tom, thanke you
Tony, thanke you

注意:排序是在遍历之前就排列完毕

5.2.4、遍历字典中的所有值(value())

如果我们需要键值对中的值时,可调用 value(),此方法返回一个值的列表,不包含任何键。

citys = {
    'tom':'北京',
    'tony':'成都',
    'mak':'上海',
    'amy':'西安',
    'mayun':'内蒙古',
}

for city in citys.values():
    print(city)

输出结果:
北京
成都
上海
西安
内蒙古

此种做法只获取字典中的值,而没有考虑是否重复。涉及值很少的时候,也许不是问题,但是如果被调查的人有很多,最终的列表可能包含大量的重复项,为了剔除重复项,可用集合set,集合类似于列表,但是每个元素都必须是独一无二的

citys = {
    'tom':'北京',
    'tony':'成都',
    'mak':'上海',
    'amy':'西安',
    'mayun':'内蒙古',
    'sa':'成都',
    'jer':'内蒙古',
}

for city in set(citys.values()):
    print(city)

输出结果:
西安
北京
内蒙古
成都
上海

代码解析:
通过调用set()方法,可以让Python从列表中找出重复的元素,并使用这些元素来创建一个集合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值