— If a person can not control his temper, temper will control you. —Isaac Newton
目录
一、字典
python字典可以将相关的信息关联起来。例如引用要保存某个用户的信息(年龄,性别,身高等),就需要使用字典来储存这个用户的多个属性信息。
# 简单示例
curry = {'age': 34, 'height': '188cm', 'team': 'Warriors','number': 30}
print(curry)
print(type(curry))
# 运行输出结果
{'age': 34, 'height': '188cm', 'team': 'Warriors', 'number': 30}
<class 'dict'>
1.1 定义字典
python字典:
- 由一系列键值对构成;
- 每个键都与值关联,可以用键来访问其关联的值;
- 与键关联的可以是数值,字符串,列表乃至字典,以及任何其他python对象。
# 简单示例
curry = {'age': 34, 'height': '188cm', 'team': 'Warriors','number': 30}
print(curry)
# 运行输出结果
{'age': 34, 'height': '188cm', 'team': 'Warriors', 'number': 30}
如上所示:
- 字典用放在 {} 的一系列键值对构成;
- 键值之间用冒号分隔,键值对之间用逗号分隔。注意与列表区别。
1.2 访问字典
要获取字典中与键关联的值,需一次指定字典名和方括号中的键。
# 示例
curry = {'age': 34, 'height': '188cm', 'team': 'Warriors','number': 30}
print(curry['height'])
print('Curry\'s height is %s.'%(curry['height']))
# 运行输出结果
188cm
Curry's height is 188cm.
1.3 添加键值对
字典是动态的结构,可以随时添加,修改和删除键值对。可依次指定字典名和中括号括起的键和其关联的值
# 示例
curry = {'age': 34, 'height': '188cm', 'team': 'Warriors'}
curry['number'] = 30
print(curry)
# 运行输出结果
{'age': 34, 'height': '188cm', 'team': 'Warriors', 'number': 30}
在字典curry中新增一个键 ‘number’, 其关联的值为 30. 另外python不关心键值对的添加顺序,再在乎键值对之间的关联。
1.4 修改字典中的值
在一些应用中,某些属性以变化的如用户年龄,账号的余额,游戏任务的技能,因此,我们需要对某个属性进行修。与添加键值对类似的修改字典的值。
# 示例
curry = {'age': 34, 'height': '188cm', 'team': 'Warriors'}
curry['number'] = 35 # 指定键,和需要修改的值.
print(curry)
# 运行输出结果
{'age': 35, 'height': '188cm', 'team': 'Warriors'}
1.5删除键值对
删除键值对需要使用 del 语句,指定字典名和所删除的键。
# 示例
curry = {'age': 34, 'height': '188cm', 'team': 'Warriors'}
del curry['age'] # 指定键
print(curry)
# 运行输出结果
{'height': '188cm', 'team': 'Warriors'}
1.6 类似对象构成的字典
前面字典储存了每一个对象的多个属性,你也可以储存多个对象的一个属性。
# 示例
player_height = {
'Stephen Curry': '188cm',
'Klay Thompson': '198cm',
'Andrew Wiggins': '201 cm'
} # 可以看到属性都是身高, 另外适当注意格式排版
二、遍历字典
我们可以遍历字典中的键值对,键或值。
2.1 遍历键值对
# 示例
player_height = {
'Stephen Curry': '188cm',
'Klay Thompson': '198cm',
'Andrew Wiggins': '201cm'
}
for key,value in player_height.items():
print(key + ': ' + value)
# 建议使用 name和height作为临时变量易于阅读,即
#for name, height in player_height.items():
# print(name + ': ' + height)
# 运行输出结果
Stephen Curry: 188cm
Klay Thompson: 198cm
Andrew Wiggins: 201cm
其中方法 items() 作用: 以列表返回可遍历的(键, 值) 元组数组。
2.2 遍历字典的所有键
使用方法 keys() 提取字典的所有键
# 示例
player_height = {
'Stephen Curry': '188cm',
'Klay Thompson': '198cm',
'Andrew Wiggins': '201cm'
}
for player in player_height.keys():
print(player)
# 上面的代码等同于
for player in player_height: # 即可省略方法 keys()
print(player)
# 运行输出结果
Stephen Curry
Klay Thompson
Andrew Wiggins
上述代码,想提取字典的所有键,然后依次将键储存到临时变量player中,打印出来。
2.2.1 方法 keys
方法 keys() 返回一个列表,该列表包含字典的所有键。
# 示例
player_height = {
'Stephen Curry': '188cm',
'Klay Thompson': '198cm',
'Andrew Wiggins': '201cm'
}
player = player_height.keys()
print(player)
# 按一定的顺序遍历键
for player in sorted(player_height.keys()):
print(player)
# 运行输出结果
dict_keys(['Stephen Curry', 'Klay Thompson', 'Andrew Wiggins'])
Andrew Wiggins
Klay Thompson
Stephen Curry
2.3 遍历字典的所有值
使用方法 values() 返回字典的所有值,使用与方法 keys() 一致。
# 示例
player_height = {
'Stephen Curry': '188cm',
'Klay Thompson': '198cm',
'Andrew Wiggins': '201cm',
'Kawhi Leonard': '201cm'
}
player = player_height.values()
print(player)
# 上面的做法可以提取字典的所有值, 而没有考虑这些值是由有重复。
# 对包含重复的列表调佣 set() 则可以找到独一无二的值来创建一个集合。
player = set(player_height.values())
print(player)
# 运行输出结果
dict_values(['188cm', '198cm', '201cm', '201cm'])
{'188cm', '201cm', '198cm'}
三、嵌套
将一系列的列表作为值储存在字典中,或将一系列字典储存在列表中,称为嵌套。
3.1 列表套字典
# 示例
Curry = {'age': 34, 'height': '188cm', 'team': 'Warriors'}
Thompson = {'age': 32, 'height': '198cm', 'team': 'Warriors'}
players = [Curry, Thompson]
print(players)
# 运行输出结果
[{'age': 34, 'height': '188cm', 'team': 'Warriors'}, {'age': 32, 'height': '198cm', 'team': 'Warriors'}]
加入循环和判断语句的简单例子:
# 示例
Curry = {'age': 34, 'height': '188cm', 'team': 'Warriors'}
Thompson = {'age': 32, 'height': '198cm', 'team': 'Warriors'}
players = [Curry, Thompson]
for player in players:
h = int(player['height'][:3])
if h < 190:
player['position'] = 'PG'
elif 190 <= h < 200:
player['position'] = 'SG'
print(players)
# 运行输出结果
[{'age': 34, 'height': '188cm', 'team': 'Warriors', 'position': 'PG'}, {'age': 32, 'height': '198cm', 'team': 'Warriors', 'position': 'SG'}]
3.2 字典套列表
# 示例
Champions = {'Stephen Curry': [2015, 2017, 2018, 2022],
'LeBron James' : [2012, 2013, 2016, 2020]
}
print(Champions)
# 运行输出结果
{'Stephen Curry': [2015, 2017, 2018, 2022], 'LeBron James': [2012, 2013, 2016, 2020]}
3.3 列表套列表,字典套字典
列表套列表
# 示例
players = ['Stephen Curry', 'Klay Thompson', 'Andrew Wiggins']
years = [2015, 2017, 2018, 2022]
Warriors = [players, years]
print(Warriors)
# 运行输出结果
[['Stephen Curry', 'Klay Thompson', 'Andrew Wiggins'], [2015, 2017, 2018, 2022]]
字典套字典
# 示例
Warriors = {'Stephen Curry': {'age': 34, 'height': '188cm', 'team': 'Warriors'},
'Klay Thompson': {'age': 32, 'height': '198cm', 'team': 'Warriors'}
}
print(Warriors)
# 运行输出结果
{'Stephen Curry': {'age': 34, 'height': '188cm', 'team': 'Warriors'}, 'Klay Thompson': {'age': 32, 'height': '198cm', 'team': 'Warriors'}}
四、完结
🌸🌸🌸撒花🌸🌸🌸
If you feel happy, clap your hands.👏👏👏