我有一个来自数据库的列表,该列表返回两天内的棒球统计信息。
假设我在一个元组列表中包含这 3 个项目:
("John Doe", 2, 3)
("Sponge Bob", 4, 5)
("John Doe", 1, 5)
我怎样才能只组合“John Doe”的两个元组并添加以下两个值。
我期待看到:
("John Doe", 3, 8)
("Sponge Bob", 4, 5)
如果您确实想处理元组列表,那么您可以循环形成具有唯一名称键的字典,然后最终写出结果列表:
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)]