在python中,字典是一系列键值对,每个键都与一个值相关联。字典用放在花括号({ })中的一系列键值对表示
t = {'color': 'blue', 'number': 21}
访问字典键值对
dict = { ’key_1’: ‘value_1’, … , ’key_n’: ‘value_n’}
dict[’key_1’] = ‘value_1’
t = {'color': 'blue', 'number': 21}
t['color'] = 'blue'
# 返回一个键值对列表,普通情况用于遍历字典
# dict.items()
t.items()
# 返回一个键列表
# dict.keys()
t.keys()
# 返回一个值列表
# dict.values()
t.values()
也可以使用get( )来访问值,可以避免在指定的键不存在时报错(KeyError),get( )会返回一个默认值
添加字典键值对
dict[’new_key_name’] = ‘new_value’
t['point'] = 10
在python3.7中,字典中元素排序顺序与定义时相同,如果将字典打印出来或遍历其元素,将发现元素的排列顺序与添加顺序相同
删除字典键值对
del dict[’key’]
del t['color']
提取字典中所有值且剔除所有重复项
# 为剔除重复项,可以使用集合(set)
for i in set(t.values()):
print(i.title())
字典与列表的嵌套
字典列表
List = [dict_1, dict_2, … , dict_n]
t_0 = {'a': 1, 'b': 2}
t_1 = {'a': 3, 'b': 4}
t_2 = {'a': 5, 'b': 6}
t_list = [t_0, t_1, t_2]
在字典中存储列表
pizza = {
'crust': 'thick',
'toopings': ['mushrooms', 'extra cheese'],
}
此处示例单个字典的键、值、对的获取,即对字典数组进行 for i in dict 后的操作
scores = {
"Zhang San": 45,
"Li Si": 78,
"Wang Wu": 40,
"Zhou Liu": 96,
"Zhao Qi": 65,
"Sun Ba": 90,
"Zheng Jiu": 78,
"Wu Shi": 99,
"Dong Shiyi": 60
}
# 获取字典中的key(键)
for key in scores.keys():
print(key, end=' ')
print()
# 获取字典中的value(值)
for value in scores.values():
print(value, end=' ')
print()
# 获取字典中的key-value(键对值)
for key, value in scores.items():
#可加判定条件
print("key=%s,value=%s" % (key, value))
# 获取字典的键值对
for item in scores.items():
print(item, end=' ')
print()
问题解决:已知有一个包含同学成绩的字典,现在需要计算所有成绩的最高分、最低分、平均分,并同时输出最高分、最低分同学的姓名和成绩
scores = {
"Zhang San": 45,
"Li Si": 78,
"Wang Wu": 40,
"Zhou Liu": 96,
"Zhao Qi": 65,
"Sun Ba": 90,
"Zheng Jiu": 78,
"Wu Shi": 99,
"Dong Shiyi": 60
}
highest = max(scores.values())
lowest = min(scores.values())
average = sum(scores.values()) / len(scores)
print(hightest,lowest,average)
for key,value in scores.items():
if value == highest:
print(key, value)
for key,value in scores.items():
if value == lowest:
print(key, value)