Python dict字典操作

219 阅读2分钟

在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)