如何从python列表中获得更重复的列表元素组合



我有一些名称列表,如下所示;

[['mallesham','yamulla'],['mallesham','yamulla'],['yamulla','mallesham']]

在这里,mallesham yamulla和mallesham yamulla的人名被计算为两次,因此输出应该是["mallesham","yamulla"]

第二个例子:

[['Joe','Doe'],['Doe','Joe'],['Doe','Joe'],['Joe','Doe'],['Doe','Joe']]

这里Doe Joe计数为3次,而Joe Doe计数为2次,因此输出将为[‘Doe’,‘Joe’]

在第三种情况下:如果所有名称的计数都与相同,该怎么办

[['Joe','Doe'],['Doe','Joe'],['Doe','Joe'],['Joe','Doe']]

它应该返回任何一个名字,例如Joe Doe。

您可以使用:

from collections import Counter
l = [['Joe','Doe'],['Doe','Joe'],['Doe','Joe'],['Joe','Doe'],['Doe','Joe']]
c = Counter([tuple(x) for x in l]).most_common(1)[0][0]
c
# ('Doe', 'Joe')

最新更新