吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 835|回复: 7
收起左侧

[求助] 关于python中列表嵌套字典的值怎么求

[复制链接]
Traitor 发表于 2021-11-20 18:04
[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}
]


如上,我想求列表中每个每个字典相同键的值,重新再写入一份字典!
[Asm] 纯文本查看 复制代码
new_dict = {"上海":66}

新字典是这样的 以此类推!
初学者,实在是没想出来,求解,谢谢各位!




发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

kk159 发表于 2021-11-20 18:25
[Python] 纯文本查看 复制代码
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))

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
Traitor + 1 + 1 谢谢@Thanks!
笔墨纸砚 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

kafei000 发表于 2021-11-20 21:01
kk159 发表于 2021-11-20 18:25
[mw_shl_code=python,true]import collections, functools, operator

a = [

厉害了,
 楼主| Traitor 发表于 2021-11-20 21:16
kk159 发表于 2021-11-20 18:25
[mw_shl_code=python,true]import collections, functools, operator

a = [

您可以讲一下怎么实现的吗?刚学到匿名函数这里
kafei000 发表于 2021-11-20 21:28

[Asm] 纯文本查看 复制代码
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[key] = new_dict.get(key, 0) + value
print(new_dict)


写一个容易看懂的
 楼主| Traitor 发表于 2021-11-20 22:20
kafei000 发表于 2021-11-20 21:28
[mw_shl_code=asm,true]a = [
    {'上海': 10, '北京': 9, '深圳': 8, '广州': 7, '重庆': 6, '武汉':  ...

new_dict.get(key, 0) + value
这条还是有点迷糊
new_dict[key] 这能理解
后面还是很懵
kafei000 发表于 2021-11-21 12:11
Traitor 发表于 2021-11-20 22:20
new_dict.get(key, 0) + value
这条还是有点迷糊
new_dict[key] 这能理解

不会的要经常查百度,dic.get(key, 0 )就是获取对应key的value,如果key不存在就返回0

B站搜黑马程序员  600集python,蛮适合初学者的
luyers 发表于 2021-11-22 08:04
我也写一个
k = sum([list(i.keys()) for i in a], [])
k = list(set(k))
b = {}
for m in k:
    b[m] = sum([i.get(m, 0) for i in a])
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 19:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表