栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python6.字典(4)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python6.字典(4)

6.3.3按特定顺寻遍历字典中的所有键

从py3.7起,遍历字典时将按插入的顺序返回其中的元素。不过在有些情况下可能要按与此不同的顺序遍历字典。要以特定顺序返回元素,一种办法是在 for 循环中返回的键进行排序。为此可使用函数 sorted() 来获得按特定顺序排列的键列表的副本:

favorite_languages = {
    'jen': 'python',
    'sarah': 'c',
    'edward': 'ruby',
    'phil': 'python',
}
for name in sorted (favorite_languages.keys()):
    print (f"{name.title()},thank you for taking the poll.")

这条 for 语句类似于其他for语句,不同之处是对方法 dictionary。keys()的结果调用了函数 sorted().这让py列出字典中所有的键,并在遍历前对这个列表进行排序。输出表明,按顺序显示了所有被调查者的名字。 

输出:Edward,thank you for taking the poll.
Jen,thank you for taking the poll.
Phil,thank you for taking the poll.
Sarah,thank you for taking the poll.

6.3.4遍历字典中的所有值

重点:for xxx in nnn.values():

    如果主要对字典包含的值感兴趣,可使用方法values()来返回一个值列表,不包含任何键。例如,假设我们想获得一个列表,其中只包含被调查者选择的各种语言,而不包含被调查者的名字,可以这样做:

favorite_languages = {
    'jen': 'python',
    'sarah': 'c',
    'edward': 'ruby',
    'phil': 'python',
}
print ("The following languages have been mentioned:")
for language in favorite_languages.values():
     print (language.title)

这条 for 语句提取字典中的每个值,并将其依次赋给变量 1anguage。通过打印这些值,就获得了一个包含被调查者所选择语言的列表:

输出:The following languages have been mentioned:
Python
C
Ruby
Python

这种做法提取字典中所有的值,而没有考虑是否重复。涉及的值很少时,这也许不是问题,
但如果被调查者很多,最终的列表可能包含大量重复项。为剔除重复项,可使用集合(set)
集合中的每个元素都必须是独一无二的:

favorite_languages = {
    'jen': 'python',
    'sarah': 'c',
    'edward': 'ruby',
    'phil': 'python',
}
print ("The following languages have been mentioned:")
for language in set(favorite_languages.values()):
     print (language.title())

输出:The following languages have been mentioned:
Python
C
Ruby

注意:可使用一对花括号直接创建集合,并在其中用逗号分隔元素:
languages ={'python','zuby','python','c'}
languages
{'ruby','python','c'}
集合和字典很容易混淆,因为它们都是用一对花括号定义的。当花括号内没有键值对时,
定义的很可能是集合。不同于列表和字典,集合不会以特定的顺序存储元素。
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/665422.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号