📌  相关文章
📜  Python|在二维列表中查找最常见的元素

📅  最后修改于: 2022-05-13 01:55:18.369000             🧑  作者: Mango

Python|在二维列表中查找最常见的元素

给定一个二维列表(长度可能相同,也可能不同),编写一个Python程序来查找给定二维列表中最常见的元素。

例子:

Input : [[10, 20, 30], [20, 50, 10], [30, 50, 10]]
Output : 10

Input : [['geeks', 'wins'], ['techie', 'wins']]
Output : wins

方法 #1:使用max()函数

第一种 Pythonic 方法是使用Python的max()方法。我们首先展平二维列表,然后简单地应用 max() 方法来找出所有元素中出现的最大元素。

# Python3 program to find most 
# common element in a 2D list
  
def mostCommon(lst):
    flatList = [el for sublist in lst for el in sublist]
    return max(flatList, key = flatList.count)
              
# Driver code
lst = [[10, 20, 30], [20, 50, 10], [30, 50, 10]]
print(mostCommon(lst))
输出:
10

还有另一种扁平化列表的方法,即chain.from_iterable() ,它产生了另一种方法。

# Python3 program to find most 
# common element in a 2D list
from itertools import chain
  
def mostCommon(lst):
    flatList = list(chain.from_iterable(lst))
    return max(flatList, key=flatList.count)
  
# Driver code
lst = [[10, 20, 30], [20, 50, 10], [30, 50, 10]]
print(mostCommon(lst))
输出:
10


方法#2:使用集合模块中的most_common()

most_common()用于生成 n 个最常遇到的输入值的序列。因此,我们简单地展平列表并使用上述方法找到最常见的元素。

# Python3 program to find most 
# common element in a 2D list
from itertools import chain
from collections import Counter
  
def mostCommon(lst):
    flatList = chain.from_iterable(lst)
    return Counter(flatList).most_common(1)[0][0]
              
# Driver code
lst = [[10, 20, 30], [20, 50, 10], [30, 50, 10]]
print(mostCommon(lst))
输出:
10