gpt4 book ai didi

python - 如何在Python中对列表进行分组?

转载 作者:行者123 更新时间:2023-11-30 22:16:20 25 4
gpt4 key购买 nike

我有一个如下所示的列表列表:

['user1', time, cpus, mem]  
['user1', time, cpus, mem]
['user2', time, cpus, mem]
['user3', time, cpus, mem]

等等..

我只需要每个用户一个列表,其中包含时间、CPU 和内存加在一起。我尝试了一些方法,但无法使其发挥作用。

最佳答案

一种甜蜜、Pythonic 且简洁的方法是:

from collections import defaultdict

l = [
['user1', 0, 1, 0],
['user2', 2, 2, 2],
['user3', 2, 2, 1],
['user3', 1, 1, 2],
['user1', 1, 0, 1],
]


merged = defaultdict(lambda: [0, 0, 0])

for user, *values in l:
merged[user] = [sum(i) for i in zip(values, merged[user])]

输出:

In : merged
Out:
defaultdict(<function __main__.<lambda>>,
{'user1': [1, 1, 1], 'user2': [2, 2, 2], 'user3': [3, 3, 3]})

它使用 defaultdict 和长度为 3 的 list 作为默认值。列表中每个元素的相关用户值都会更新。

关于python - 如何在Python中对列表进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49975482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com