Skip to main content
 首页 » 编程设计

Python:搜索最大数据

2025年05月04日35zlslch

有两个列表。一个是code_list,另一个是points

code_list= ['ab','ca','gc','ab','we','ca'] 
points = [30, 20, 40, 20, 10, -10] 

这两个列表像这样相互连接:'ab' = 30, 'ca'=20 , 'gc' = 40, 'ab'=20, 'we'=10, 'ca'=-10

从这两个列表中,如果有相同的元素,我想得到每个元素的总和。最后,我将得到一个具有最大意义的元素。 我希望得到如下所示的简单结果:

'ab' has the biggest point: 50 

你能帮我一个忙吗?

请您参考如下方法:

您可以使用 collections.Counter()实例:

>>> from collections import Counter 
>>> code_list= ['ab','ca','gc','ab','we','ca'] 
>>> points = [30, 20, 40, 20, 10, -10] 
>>> c = Counter() 
>>> for key, val in zip(code_list, points): 
...     c[key] += val 
...  
>>> c.most_common(1) 
[('ab', 50)] 

zip() 将您的两个输入列表配对。

正是最后一次调用使 Counter() 在这里有用,.most_common() 调用在内部使用 max() 仅用于一项,但对于大于 1 的参数,使用 heapq.nlargest(),并且没有参数或要求 len(c),sorted() 被使用。