第五章 字典

5.1 使用字典

在Python中,字典 是一系列 键-值对 。每个键都与一个值相关,可以用键值访问与之关联的值。

用放在花括号{ }中的一系列键-值对表示字典。
Tom = {
    'gender':'male',
    'age' : 15,
    'home':'New York'
}
print(Tom['gender'])

输出:

male

5.1.1 添加键值对

字典是一种动态结构,可随时在其中添加键值对。要添加键值对,可依次指明字典名、用方括号括其键、将值赋值给它。

Tom = {
    'gender':'male',
    'age' : 15,
    'home':'New York'
}
Tom['hobby'] = 'football'
print(Tom)

输出:

{'gender': 'male', 'age': 15, 'home': 'New York', 'hobby': 'football'}

5.1.2 修改字典中的值

直接赋值,不多赘述

5.1.3 删除键值对

对于字典中不需要的信息,可以用del语句直接彻底删除

Tom = {
    'gender':'male',
    'age' : 15,
    'home':'New York'
}
del Tom[age]
print(Tom)

{'gender': 'male', 'home': 'New York'}

5.2 遍历字典

5.2.1 遍历字典所有信息

Tom = {
    'gender':'male',
    'home':'New York'
}
for key, value in Tom.items():
   print("\nKey: " + key)
   print("Value: " + value)
  • 要编写遍历字典的for循环,需要声明两个变量,用于存储键和值。
  • 方法items()返回一个键值对列表

5.2.2 遍历字典中所有的键

在不需要使用字典中的值时,方法keys()很有用。

Tom = {
    'gender':'male',
    'home':'New York'
}
for key in Tom.keys():
   print("Key: " + key)

Key: gender

Key: home

  • keys()返回一个键列表

5.2.3 遍历字典中所有的值

同理,用方法values() 可以得到一个值列表

Tom = {
    'gender':'male',
    'home':'New York'
}
for val in Tom.values():
   print("Values: " + val)

Values: male
Values: New York

5.3 嵌套*

字典、元组、列表之间可以相互嵌套
比如:

a = [1, 2]
b = [3, 4]
c = {
    1: a,
    2: b
}
a = {1: 10, 2: 20}
b = {3: 30}
c = [a, b]

但需要注意:

- 被嵌套的字典、列表、元组并不是复制一套新副本进去,而是将其“引用”被包含进去。即改变被包含的元素,原列表/元组/字典同样会改变。
  • 被包含的简单变量不会变化
#字典包含列表
a = [1, 2]
b = [3, 4]
c = {
    1: a,
    2: b
}

c[1][0] = 3
print(c[1])
print(a)

c[1] : [3, 2]

a : [3, 2]

#列表包含字典
a = {1: 10, 2: 20}
b = {3: 30}
c = [a, b]

c[0][1] = 100
print(c[0])
print(a)

c[0] : {1: 100, 2: 20}

a : {1: 100, 2: 20}

#列表包含简单变量
i = 1
a = [i, 2]
a[0] = 2
print(a[0])
print(i)

a[0] : 2
i : 1