需要帮助在Python中组合元组列表的相同元素

问题描述 投票:0回答:1

我有一个来自数据库的列表,该列表返回两天内的棒球统计信息。

假设我在一个元组列表中包含这 3 个项目:

("John Doe", 2, 3)
("Sponge Bob", 4, 5)
("John Doe", 1, 5)

我怎样才能只组合“John Doe”的两个元组并添加以下两个值。

我期待看到:

("John Doe", 3, 8)
("Sponge Bob", 4, 5)
python database list statistics tuples
1个回答
0
投票

如果您确实想处理元组列表,那么您可以循环形成具有唯一名称键的字典,然后最终写出结果列表:

orig = [("John Doe", 2, 3), ("Sponge Bob", 4, 5), ("John Doe", 1, 5)]

my_dict = {}
for x in orig:
    if x[0] in my_dict:
        my_dict[x[0]] = (my_dict[x[0]][0]+x[1], my_dict[x[0]][1]+x[2])
    else:
        my_dict[x[0]] = (x[1], x[2])
        
res = [(k, v[0], v[1]) for k, v in my_dict.items()]

print(res)

给予

[('John Doe', 3, 8), ('Sponge Bob', 4, 5)]
© www.soinside.com 2019 - 2024. All rights reserved.