学会Python:字典

390 阅读3分钟

字典dictory

在Python中,字典是一系列的键值对。与键相关联的值可以是数字,字符串,列表乃至字典。可以用字典来存储一个对象的多种信息。

在Python中,字典用放在花括号{} 中的一系列键值对表示。

实例:alien_0={'color':'green','points':5}

键和值之间用冒号分隔,而键—值对之间用逗号分隔。

可以用print(alien_0),输出字典信息。

使用字典

假设现有字典:alien_0={'color':'green','points':5}

访问字典中的值

要获取与键相关联的值,可依次指定字典名和放在方括号内的键。

如要获取字典alien_0中与键'color'相关联的值:alien_0['color']

如此,我们便可以修改或获取字典中的值。

添加键值对

要添加键值对,可依次指定字典名、用方括号括起的键和相关联的值。

如要对字典alien_0添加键值对'x_position':0,则做法如下:alien_0['x_position']=0

注意,键—值对的排列顺序与添加顺序不同。Python不关心键—值对的添加顺序,而只关心键和值之间的关联关系。

删除键值对

使用del语句将相应的键值对彻底删除。使用del语句时,必须指定字典名和要删除的键。

例如,要从字典alien_0 中删除键值对'x_position':0 ,做法如下:del alien_0['position']

遍历字典

假设现有字典favorite_languages = {'jen':'python','sarah': 'c','edward':'ruby','phil':'python'},有以下几种方式遍历字典:

遍历所有的键值对

编写用于遍历字典的for循环,可声明两个变量,用于存储键值对中的键和值。

for key,value in favorite_languages.items():	#items()返回一个键值对列表,接下来,for 循环依次将每个键—值对存储到指定的两个变量中
    print("\nKey: " + key)
    print("Value: " + value)

注意,即便遍历字典时,键—值对的返回顺序也与存储顺序不同。Python不关心键—值对的存储顺序,而只跟踪键和值之间的关联关系。

遍历字典中的所有键

有时候,我们仅需要得到字典中的键,可以借助于函数keys(),方法如下:

for name in favorite_languages.keys():	#提取字典中所有的键,并依次将它们存储到变量name中
    print(name.title())

函数keys() 并非只能用于遍历;实际上,它返回一个列表,其中包含字典中的所有键。

遍历字典中的所有值

要想得到字典包含的值,可使用方法values() ,它返回一个值列表,而不包含任何键。

for language in favorite_languages.values():	#提取字典中所有的值,并依次将它们存储到变量language中
    print(language.title())
    
for language in set(favorite_languages.values()):	#set()会将重复的元素剔除
      print(language.title())

嵌套

可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。

字典列表

列表所存储的元素可以是字典。可以通过字典列表,来表示多个对象的集合。

alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'yellow', 'points': 10}
alien_2 = {'color': 'red', 'points': 15}
#字典列表aliens,所存储的元素都是字典
aliens = [alien_0, alien_1, alien_2]

列表字典

每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。

pizza = {
      'crust': 'thick',
      'toppings': ['mushrooms', 'extra cheese'],
      }		#将列表作为值存储于字典内

在字典中存储字典

users = {
      'aeinstein': {
          'first': 'albert',
          'last': 'einstein',
          'location': 'princeton',
          },

      'mcurie': {
          'first': 'marie',
          'last': 'curie',
          'location': 'paris',
          },
      }
#两个键:用户名'aeinstein' 和'mcurie' ;
#与每个键相关联的值都是一个字典,其中包含用户的名、姓和居住地。