跳到主要内容

6.字典

使用字典

提示

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

  • 访问字典中的值
alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])
  • 添加键值对
alien_0 = {'color': 'green', 'points': 5}
alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)
  • 修改字典中的值
alien_0 = {'color': 'green'}
alien_0['color'] = 'yellow'
print(f"The alien is now {alien_0['color']}")
  • 删除键值对
alien_0 = {'color': 'green', 'points': 5}
del alien_0['points']
print(alien_0)
  • 使用get来访问值,第二个参数为指定键不存在时默认值,是可选的
alien_0 = {'color': 'green', 'speed': 5}
point_value = alien_0.get('point','No point value assigned.')
print(point_value)

如果没有指定默认值,Python将返回None

遍历字典

  • for 循环遍历所有键值对
  • 遍历所有键值对
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
for key, value in user_0.items():
print(f"\nKey: {key}")
print(f"Value: {value}")

items()返回一个键值对列表,for循环将每个键值对存储在指定的两个变量中

  • 遍历所有键

在不需要使用字典中的值时,方法keys()很有用,遍历字典时,会默认遍历所有键,下面代码是等效的:

for key in user_0.keys():
for key in user_0:
  • 按顺序遍历字典中的所有键

从Python3.7开始,遍历字典时将按插入顺序返回键值对,但是要以特定的顺序返回元素,必须使用sorted()来处理 sorted()返回一个排好序的列表副本,而不影响原来的列表

for key in sorted(user_0.keys()):
print(key)
  • 遍历字典中的所有值

values()返回一个值列表,而不包含任何键

for value in user_0.values():
print(value)

这种做法提取字典中所有值,而没有考虑是否重复,为了剔除重复项,可以使用集合(set)

for value in set(user_0.values()):
print(value)

嵌套

  • 列表中存储字典
  • 字典中存储列表
  • 字典中存储字典