alien_0 = {‘color‘: ‘green‘, ‘points‘: 5} print(alien_0[‘color‘]) print(alien_0[‘points‘]) ‘‘‘ green 5 ‘‘‘
在Python中,字典字是一系列键—值对值 。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将 任何Python对象用作字典中的值。在Python中,字典用放在花括号{} 中的一系列键—值对表示。
键—值对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值之间用冒号分隔,而键—值对之间用逗号分隔。在字典中,你想存储多少个键—值对都可以。
二、访问字典中的值
要获取与键相关联的值,可依次指定字典名和放在方括号内的键,如下所示:
#如果玩家射杀了这个外星人,你就可以使用下面的代码来确定玩家应获得多少个点 alien_0 = {‘color‘: ‘green‘, ‘points‘: 5} new_points = alien_0[‘points‘] print("You just earned " + str(new_points) + " points!") #You just earned 5 points!
三、添 —值对值
字典是一种动态结构,可随时在其中添加键—值对。要添加键—值对,可依次指定字典名、用方括号括起的键和相关联的值。 下面在字典alien_0 中添加两项信息:外星人的 x 坐标和 y 坐标,让我们能够在屏幕的特定位置显示该外星人。
alien_0 = {‘color‘: ‘green‘, ‘points‘: 5} print(alien_0) alien_0[‘x_position‘] = 0 alien_0[‘y_position‘] = 25 print(alien_0) ‘‘‘ {‘color‘: ‘green‘, ‘points‘: 5} {‘color‘: ‘green‘, ‘points‘: 5, ‘y_position‘: 25, ‘x_position‘: 0} ‘‘‘
四、修改字典中的值
要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。alien_0 = {‘color‘: ‘green‘} print("The alien is " + alien_0[‘color‘] + ".") alien_0[‘color‘] = ‘yellow‘ print("The alien is now " + alien_0[‘color‘] + ".") ‘‘‘ The alien is green. The alien is now yellow. ‘‘‘
五、删除键—值对
对于字典中不再需要的信息,可使用del 语句将相应的键—值对彻底删除。使用del 语句时,必须指定字典名和要删除的键。
alien_0 = {‘color‘: ‘green‘, ‘points‘: 5} print(alien_0) del alien_0[‘points‘] print(alien_0) ‘‘‘ {‘color‘: ‘green‘, ‘points‘: 5} {‘color‘: ‘green‘} ‘‘‘
六、由类似对象组成的字典
favorite_languages = { ‘jen‘: ‘python‘, ‘sarah‘: ‘c‘, ‘edward‘: ‘ruby‘, ‘phil‘: ‘python‘, } print("Sarah‘s favorite language is " + favorite_languages[‘sarah‘].title() + ".") #Sarah‘s favorite language is C. ‘‘‘ 定义好字典后,在最后一个键—值对的下一行添加一个右花括号,并缩进四个空格,使其与字典中的键对齐。另外一种不错的做法是在最后一个键—值对后面也加上逗号,为以 后在下一行添加键—值对做好准备。 这个示例还演示了如何将较长的print 语句分成多行。单词print 比大多数字典名都短,因此让输出的第一部分紧跟在左括号后面是合理的。请选择在合适的地方拆 分要打印的内容,并在第一行末尾加上一个拼接运算符(+ )。按回车键进入print 语句的后续各行,并使用Tab键将它们对齐并缩进一级。指定要打印的所有内容 后,在print 语句的最后一行末尾加上右括号。 ‘‘‘
七、遍历字典
1、要编写用于遍历字典的for 循环,可声明两个变量,用于存储键—值对中的键和值。
user_0 = { ‘username‘: ‘efermi‘, ‘first‘: ‘enrico‘, ‘last‘: ‘fermi‘, } for key, value in user_0.items(): print("\nKey: " + key) print("Value: " + value) ‘‘‘ Key: last Value: fermi Key: first Value: enrico Key: username Value: efermi ‘‘‘
2、自定义键值变量进行遍历,更容易让人明白。
favorite_languages = { ‘jen‘: ‘python‘, ‘sarah‘: ‘c‘, ‘edward‘: ‘ruby‘, ‘phil‘: ‘python‘, } for name, language in favorite_languages.items(): print(name.title() + "‘s favorite language is " + language.title() + ".") ‘‘‘ Jen‘s favorite language is Python. Sarah‘s favorite language is C. Phil‘s favorite language is Python. Edward‘s favorite language is Ruby. 将键存储在变量name 中,而将值存储在变量language 中 ‘‘‘
3、遍历字典中的所有键,以及通过键来取值
favorite_languages = { ‘jen‘: ‘python‘, ‘sarah‘: ‘c‘, ‘edward‘: ‘ruby‘, ‘phil‘: ‘python‘, } friends = [‘phil‘, ‘sarah‘] #定义了一个元组 for name in favorite_languages.keys(): #通过keys()获取键 print(name.title()) if name in friends: print(" Hi " + name.title() + ", I see your favorite language is " + favorite_languages[name].title() + "!") #获取键的值 ‘‘‘ Edward Phil Hi Phil, I see your favorite language is Python! Sarah Hi Sarah, I see your favorite language is C! Jen ‘‘‘
遍历字典时,会默认遍历所有的键,因此,如果将上述代码中的for name in favorite_languages.keys(): 替换为for name in favorite_languages: ,输出将不变。
4、按顺序遍历字典中的所有键。
字典总是明确地记录键和值之间的关联关系,但获取字典的元素时,获取顺序是不可预测的。
favorite_languages = { ‘jen‘: ‘python‘, ‘sarah‘: ‘c‘, ‘edward‘: ‘ruby‘, ‘phil‘: ‘python‘, } for name in sorted(favorite_languages.keys()): #通过sorted排序 print(name.title() +", thank you for taking the poll.") ‘‘‘ 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. ‘‘‘
5、遍历字典中的所有值
如果你感兴趣的主要是字典包含的值,可使用方法values() ,它返回一个值列表,而不包含任何键。
favorite_languages = { ‘jen‘: ‘python‘, ‘sarah‘: ‘c‘, ‘edward‘: ‘ruby‘, ‘phil‘: ‘python‘, } print("The following languages have been mentioned:") for language in favorite_languages.values(): #通过values()获取值 print(language.title()) ‘‘‘ The following languages have been mentioned: Python C Python 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 ‘‘‘
八、嵌套
有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套嵌 。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。
1、字典列表。
例如:字典alien_0 包含一个外星人的各种信息,但无法存储第二个外星人的信息,更别说屏幕上全部外星人的信息了。如何管理成群结队的外星人呢?一种办法是创建一个外星人列 表,其中每个外星人都是一个字典,包含有关该外星人的各种信息。