6.2 使用字典

字典是一系列的键-值对,可以用键来访问与之相关联的值。
字典用放在{}中的一系列键-值对表示。

  1. alien_0 = {'color': 'green', 'points': 5}

6.2.1 访问字典中的值

  1. print(alien_0['color']) #输出的值为green

6.2.2 添加键-值对

  1. alien_0['x_position'] = 0
  2. alien_0['y_position'] = 25

注意:首先得定义了字典,即字典名alien_0存在,才能添加键-值对。
键-值对的排列顺序不一定与添加顺序相同,Python只关心键-值之间的对应关系。

6.2.3 创建空字典(添加键-值对)

  1. alien_0 = {}

6.2.4 修改字典中的值

  1. alien_0['x_position'] = 25 #直接找到字典名中对应的键,改值就行

6.2.5 删除键-值对

  1. del alien_0['points']

6.2.6 不同字典的编写格式

  1. 1.一个对象的多种信息
  1. alien_0 = {'color': 'green', 'points': 5} #一个外星人的颜色,分值等。所以横着写
  1. 2.多个对象的同一种信息
  1. favorite = {
  2. 'Mike': 'C',
  3. 'Tom': 'JAVA',
  4. 'Bob': 'Python',
  5. } #每个人最喜欢的语言

6.3 遍历字典

6.3.1 遍历所有键-值对

  1. 方法items()

method?

  1. for key, value in favorite.items(): #将每一个键-值对拿出,并把键存储在变量key中,值存储在变量value中。
  2. print(key, value, '\n')

6.3.2 遍历所有的键

  1. 方法key()
  1. for name in favorite.keys(): #将每一个键拿出,并把键存储在变量name中。
  2. print(name)
  1. #注意:<br /> 1.遍历字典时,如果字典名后面没有任何方法,则默认遍历所有的键(即上述如果没有.keys(),输出不变)。<br />

6.3.3 遍历所有的值

  1. 方法values()
  1. for value in favorite.values():
  2. print(value)
  1. #注意:values()也会返回一个列表,包含值。但问题同上????<br />

6.3.4 按顺序遍历

  1. 利用函数sorted()
  1. for name in sorted(favorite.keys()):
  2. print(name)

6.3.5 剔除值的重复项

  1. 利用函数set()
  1. set(favorite.values())

6.4 嵌套

将一系列字典存储在列表中,或将列表作为值存储在字典中,称为嵌套。

6.4.1 字典列表(每个元素都是字典)

  1. alien_0 = {'color': 'green', 'points': 5}
  2. alien_1 = {'color': 'red', 'points': 10}
  3. alien_2 = {'color': 'blue', 'points': 15}
  4. aliens = [alien_0, alien_1, alien_2] #字典列表(列表中的元素是字典)
  5. for et in aliens:
  6. print(et)

适用于多个事物拥有多个属性,且每个属性只有一个值的情况。

6.4.2 将列表存储在字典中

  1. 当要描述的事物的属性可能有多个值时,就可以在字典中嵌套列表。即一个键可以关联多个值。
  1. favorite = {
  2. 'Mike': ['C', 'VB'],
  3. 'Tom': ['JAVA'],
  4. 'Bob': ['Python','C++','HTML'],
  5. 'Tony': ['C','Ruby','C#']
  6. }
  7. for name, languages in favorite.items():
  8. print(name.title())
  9. for language in languages:
  10. print(language)
  11. print('\n')
  1. #适用于多个事物的同种属性具有多个值时的情况。(有多个人,对于他们喜欢的语言,一个人可能有多个)<br />

6.4.3 在字典中存储字典

  1. 外层字典中,键对应的值也是一个字典。<br /> eg. P97(pdf 60)<br /> 网站用户:<br /> ‘用户名’作为键,对应值‘用户信息’。而用户信息也是个字典,其中的各种键代表用户的各种信息类型,如地址,firstname等<br />

小结:

  1. 所谓遍历,其实靠的是for循环。keys(),values(),items()都只是取值。
    2.
    d.keys()
    ,d.values(),d.items() 返回的都是视图对象(view),可以进行迭代操作,与迭代器类似。可以通过list()方法将它们列表化。
    image.png