Skip to main content
 首页 » 编程设计

python之如何在python中合并数据

2025年05月04日10lyj

刚学python没多久。而且我已经尽我最大的努力来表示我的数据,就像之前展示的那样看起来更好。 现在我有一些元组数据类型,如下所示:

('John', '5', 'Coke') 
('Mary', '1', 'Pie') 
('Jack', '3', 'Milk') 
('Mary', '2', 'Water')  
('John', '3', 'Coke') 

我想数一数每个人买了多少件东西。

假设不同的名字是不同的人。

那么我该怎么做才能获得如下所示的一些信息:

 John: 8 Coke  
 Mary: 1 Pie  
 Mary: 2 Water  
 Jack: 3 Milk 

我现在不知道该怎么办。我想不出任何方法,即使是愚蠢的方法。

请您参考如下方法:

我建议使用 name 和 drink 作为 collections.Counter 的键:

from collections import Counter 
count = Counter() 
for name, amount, drink in tuples: 
    key = name, drink 
    count.update({key: int(amount)})  # increment the value 
 
# represent the aggregated data 
for (name, drink), amount in count.items(): 
    print('{}: {} {}'.format(name, amount, drink)) 

更新 我做了一些简单的测量,并弄清楚了

count[name, drink] += value 

不仅更具可读性,而且比调用 update 快得多,这不足为奇。此外,defaultdict(int) 甚至比它更快(大约两倍)(大概是因为 Counter 额外执行一些排序。)