Python:搜索最大数据 [英] Python: searching maximum data
问题描述
有两个列表.一个是code_list,另一个是点数
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()
.
There are two lists. one is code_list, the other is points
code_list= ['ab','ca','gc','ab','we','ca']
points = [30, 20, 40, 20, 10, -10]
These two lists connect each other like this: 'ab' = 30, 'ca'=20 , 'gc' = 40, 'ab'=20, 'we'=10, 'ca'=-10
From these two lists, If there are same elements, I wan to get sum of each element. Finally, I'll get a element which has the biggest point. I'll hope to get a simple result like below:
'ab' has the biggest point: 50
Could you give me a your help?
You can use a collections.Counter()
instance:
>>> 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()
pairs up your two input lists.
It's that last call that makes the Counter()
useful here, the .most_common()
call uses max()
internally for just one item, but for an argument greater than 1 heapq.nlargest()
is used, and with no argument or asking for len(c)
, sorted()
is used.
这篇关于Python:搜索最大数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!