关于python中列表嵌套字典的值怎么求
a = [
{'上海': 10, '北京': 9, '深圳': 8, '广州': 7, '重庆': 6, '武汉': 5, '成都': 4, '杭州': 3, '天津': 2, '西安': 1},
{'上海': 8, '北京': 7, '深圳': 1, '广州': 4, '重庆': 10, '武汉': 3, '成都': 9, '杭州': 2, '天津': 6, '西安': 5},
{'上海': 8, '北京': 9, '深圳': 10, '广州': 6, '重庆': 1, '武汉': 4, '成都': 2, '杭州': 7, '天津': 5, '西安': 3},
{'上海': 9, '北京': 10, '深圳': 8, '广州': 7, '重庆': 5, '武汉': 4, '成都': 2, '杭州': 3, '天津': 6, '西安': 1},
{'上海': 10, '北京': 9, '深圳': 4, '广州': 8, '重庆': 5, '武汉': 7, '成都': 3, '杭州': 6, '天津': 2, '西安': 1},
{'上海': 7, '北京': 10, '深圳': 1, '广州': 9, '重庆': 4, '武汉': 8, '成都': 3, '杭州': 2, '天津': 5, '西安': 6},
{'上海': 9, '北京': 10, '深圳': 1, '广州': 8, '重庆': 2, '武汉': 5, '成都': 3, '杭州': 4, '天津': 7, '西安': 6},
{'上海': 5, '北京': 6, '深圳': 8, '广州': 9, '重庆': 10, '武汉': 1, '成都': 7, '杭州': 2, '天津': 3, '西安': 4}
]
如上,我想求列表中每个每个字典相同键的值,重新再写入一份字典!
new_dict = {"上海":66}
新字典是这样的 以此类推!
初学者,实在是没想出来,求解,谢谢各位!
import collections, functools, operator
a = [
{'上海': 10, '北京': 9, '深圳': 8, '广州': 7, '重庆': 6, '武汉': 5, '成都': 4, '杭州': 3, '天津': 2, '西安': 1},
{'上海': 8, '北京': 7, '深圳': 1, '广州': 4, '重庆': 10, '武汉': 3, '成都': 9, '杭州': 2, '天津': 6, '西安': 5},
{'上海': 8, '北京': 9, '深圳': 10, '广州': 6, '重庆': 1, '武汉': 4, '成都': 2, '杭州': 7, '天津': 5, '西安': 3},
{'上海': 9, '北京': 10, '深圳': 8, '广州': 7, '重庆': 5, '武汉': 4, '成都': 2, '杭州': 3, '天津': 6, '西安': 1},
{'上海': 10, '北京': 9, '深圳': 4, '广州': 8, '重庆': 5, '武汉': 7, '成都': 3, '杭州': 6, '天津': 2, '西安': 1},
{'上海': 7, '北京': 10, '深圳': 1, '广州': 9, '重庆': 4, '武汉': 8, '成都': 3, '杭州': 2, '天津': 5, '西安': 6},
{'上海': 9, '北京': 10, '深圳': 1, '广州': 8, '重庆': 2, '武汉': 5, '成都': 3, '杭州': 4, '天津': 7, '西安': 6},
{'上海': 5, '北京': 6, '深圳': 8, '广州': 9, '重庆': 10, '武汉': 1, '成都': 7, '杭州': 2, '天津': 3, '西安': 4}
]
result = dict(functools.reduce(operator.add,map(collections.Counter, a)))
print(str(result)) kk159 发表于 2021-11-20 18:25
import collections, functools, operator
a = [
厉害了, kk159 发表于 2021-11-20 18:25
import collections, functools, operator
a = [
您可以讲一下怎么实现的吗?刚学到匿名函数这里
a = [
{'上海': 10, '北京': 9, '深圳': 8, '广州': 7, '重庆': 6, '武汉': 5, '成都': 4, '杭州': 3, '天津': 2, '西安': 1},
{'上海': 8, '北京': 7, '深圳': 1, '广州': 4, '重庆': 10, '武汉': 3, '成都': 9, '杭州': 2, '天津': 6, '西安': 5},
{'上海': 8, '北京': 9, '深圳': 10, '广州': 6, '重庆': 1, '武汉': 4, '成都': 2, '杭州': 7, '天津': 5, '西安': 3},
{'上海': 9, '北京': 10, '深圳': 8, '广州': 7, '重庆': 5, '武汉': 4, '成都': 2, '杭州': 3, '天津': 6, '西安': 1},
{'上海': 10, '北京': 9, '深圳': 4, '广州': 8, '重庆': 5, '武汉': 7, '成都': 3, '杭州': 6, '天津': 2, '西安': 1},
{'上海': 7, '北京': 10, '深圳': 1, '广州': 9, '重庆': 4, '武汉': 8, '成都': 3, '杭州': 2, '天津': 5, '西安': 6},
{'上海': 9, '北京': 10, '深圳': 1, '广州': 8, '重庆': 2, '武汉': 5, '成都': 3, '杭州': 4, '天津': 7, '西安': 6},
{'上海': 5, '北京': 6, '深圳': 8, '广州': 9, '重庆': 10, '武汉': 1, '成都': 7, '杭州': 2, '天津': 3, '西安': 4}
]
new_dict = {}
for old_dic in a:
for key, value in old_dic.items():
# print(new_dict.get(key, 0))# 使用new_dict.get(key, default=0)会报错
new_dict = new_dict.get(key, 0) + value
print(new_dict)
写一个容易看懂的 kafei000 发表于 2021-11-20 21:28
a = [
{'上海': 10, '北京': 9, '深圳': 8, '广州': 7, '重庆': 6, '武汉':...
new_dict.get(key, 0) + value
这条还是有点迷糊
new_dict 这能理解
后面还是很懵
Traitor 发表于 2021-11-20 22:20
new_dict.get(key, 0) + value
这条还是有点迷糊
new_dict 这能理解
不会的要经常查百度,dic.get(key, 0 )就是获取对应key的value,如果key不存在就返回0
B站搜黑马程序员600集python,蛮适合初学者的 我也写一个
k = sum(, [])
k = list(set(k))
b = {}
for m in k:
b = sum()
页:
[1]