>>> from collections import defaultdict
>>>
>>> mylist = [20,30,25,20,30]
>>> dd = defaultdict(int)
>>> for i in mylist:
... dd[i] += 1
...
>>> max(i for i in dd if dd[i] > 1)
30
你也可以用一个普通的老字条:
>>> d = dict.fromkeys(mylist, 0)
>>> for i in mylist:
... d[i] += 1
...
>>> max(i for i in d if d[i] > 1)
30
这个是O(n)
另一种方法,仅仅因为。。。
你也可以用一个普通的老字条:
获取最大重复值:
不幸的是,由于count()调用重复,这有O(n**2)性能。这里有一个更为冗长的方法来完成与O(n)性能相同的任务,如果列表很长,这一点很重要:
相关问题 更多 >
编程相关推荐