我有一个二维列表:
arr = [['Mohit', 'shini','Manoj','Mot'],
['Mohit', 'shini','Manoj'],
['Mohit', 'Vis', 'Nusrath']]
我想在2D列表中找到最常见的元素。在上面的例子中,最常见的字符串是'Mohit'
。在
我知道我可以使用bruteforce使用两个for循环和一个字典来完成这项工作,但是有没有更有效的方法使用numpy或其他任何库呢?在
The nested lists could be of different lengths
有人也可以加上他们的方法的时间吗?找到禁食的方法。此外,还有一些可能不是很有效的警告。在
编辑
以下是系统中不同方法的计时:
^{pr2}$Mayank Porwal的方法在我的系统上运行最快。在
我建议将二维数组展平,然后使用计数器找出最频繁的元素。在
但不确定这是否是最快的方法。在
编辑:
@timgeb的答案有一种更快的方法,可以使用
itertools.chain
将列表变平@schwobaseggl提出了一种更节省空间的方法:
^{pr2}$演示:
详细信息:
^{pr2}$一些时间安排:
(请注意,Kevin Fang的第二个解决方案比第一个稍慢一些,但更节省内存。)
这样做的一种方法
所用时间:0.00016713142395秒
演示:http://tpcg.io/NH3zjm
相关问题 更多 >
编程相关推荐