您的位置 首页 java

Python入门第16课-遍历字典

一个 Python 字典可能只包含几个键-值对,也可能包含数百万个键-值对。字典可用于以各种方式存储信息,因此有多种遍历字典的方式:可遍历字典的所有键-值对、键、值。

16.1 遍历所有的键-值对

下面的字典存储用户的昵称、姓、名:

前面介绍可以根据键值访问字典的任何一项信息,如果要获取字典中的所有信息,可以使用一个 for循环 来遍历这个字典:

user_0 = {

‘username’:’changtui’,

‘first’:’lei’,

‘last’:’feng’

}

① for key,value in user_0.items():

② print(“\nKey:” + key)

③ print(“Value:” + value)

在①处,要编写用于遍历字典的for循环,可声明两个变量,用于存储键-值对中的键和值。对于这两个变量,可使用任何名称。for循环的第二部分包含字典名和方法items()。在上述示例中,我们使用这两个变量来打印每个键(见②)及其相关联的值(见③):

Key:username

Value:changtui

Key:last

Value:feng

Key:first

Value:lei

再看一个例子:

favorite_languages = {

‘jen’:’python’,

‘sara’:’ ruby ‘,

‘david’:’java’,

‘tom’:’c#’

}

① for name,language in favorite_languages.items():

② print(name.title() + ” ‘s favorite language is ” +

language.title() + ‘.’)

① 处的代码让Python遍历字典中的每个键-值对,并将键存储在变量name中,将值存储在变量language中。上述代码,将全部调查结果显示:

Tom ‘s favorite language is C#.

Sara ‘s favorite language is Ruby.

Jen ‘s favorite language is Python.

David ‘s favorite language is Java.

即便字典存储的是上千乃至上百万条数据,这种循环依旧有用。

16.2 遍历字典中的所有键

在不需要使用字典中的值时,使用方法key()。下面来遍历字典favorite_languages,并将每个被调查者的名字打印出来:

favorite_languages = {

‘jen’:’python’,

‘sara’:’ruby’,

‘david’:’java’,

‘tom’:’c#’

}

① for name in favorite_languages.keys():

② print(name.title())

①处的代码让Python提取字典中的所有键,并依次将它们存储到变量name中:

Tom

Sara

Jen

David

遍历字典时,默认遍历所有的键,因此下面两种方式效果相同:

① for name in favorite_languages.keys():

② for name in favorite_languages:

建议使用①方式,因为可以让代码更容易被理解。

方法keys()并非只能用于遍历,实际上,该方法返回一个 列表 ,其中包含字典中所有的键。例如:

# -*- coding:utf-8 -*-

favorite_languages = {

‘jen’:’python’,

‘sara’:’ruby’,

‘david’:’java’,

‘tom’:’c#’

}

① if ‘tony’ not in favorite_languages.keys():

② print(“Tony,我们邀请你参加我们的 编程语言 调研”)

①处的代码只是核实’tony’是否包含在列表中。如果他并不包含在这个列表中,就邀请他来参加调研:

Tony,我们邀请你参加我们的编程语言调研

16.3 遍历字典中的所有值

遍历字典中的值,使用方法values(),它返回一个值列表,而不包含任何键。例如,如果想获得一个这样的列表,其中只包含被调查者选择的各种语言,而不包含被调查者的名字,可以这样做:

# -*- coding:utf-8 -*-

favorite_languages = {

‘jen’:’python’,

‘sara’:’ruby’,

‘david’:’java’,

‘tom’:’python’

}

print(“以下语言在调研中被提及:”)

for language in favorite_languages.values():

print(language.title())

这条for语句提取字典中的每个值,并将它们依次存储到变量language中:

以下语言在调研中被提及:

Python

Ruby

Python

Java

这里只提取字典中所有的值,而没有考虑值是否重复。做数据分析了,我们只关心哪些语言被提及以及被提及多少次,我们这里先考虑剔除重复性。为了剔除重复性,可使用集合(set)。集合类似于列表,但其中每个元素都必须是独一无二的:

# -*- coding:utf-8 -*-

favorite_languages = {

‘jen’:’python’,

‘sara’:’ruby’,

‘david’:’java’,

‘tom’:’python’

}

print(“以下语言在调研中被提及:”)

① for language in set(favorite_languages.values()):

② print(language.title())

①处,通过对包含重复元素的列表调用set(),可让Python找出列表中独一无二的元素,并使用这些元素来创建一个集合。输出结果是一个不重复的列表,其中列出了被调查者提及的所有语言:

以下语言在调研中被提及:

Python

Java

Ruby

去除重复元素,还可以使用if语句,但Python内置的方法更简单、高效。随着Python学习的深入,经常会发现它内置的功能可帮助你以希望的方式处理数据。

16.4 写在最后

为了方便大家系统性的学习知识和参与项目实战,希望大家关注文章下方的广告区推广的号,是我自己运营的,头条上面很多想做的事情受到了极大的限制,知识内容无法形成结构性,也不方便交流,很多的互动和活动都在那个号上,欢迎加入,感谢支持~~

文章来源:智云一二三科技

文章标题:Python入门第16课-遍历字典

文章地址:https://www.zhihuclub.com/175480.shtml

关于作者: 智云科技

热门文章

网站地图