繁体   English   中英

在列表列表中查找最常见的列表

[英]Finding the most common list in list of lists

我有一个列表列表,我希望在每个列表中找到最常见的列表,如果有多种模式,那么我希望找到所有这些模式。 这听起来有点复杂,所以我将提供示例。

我拥有的列表列表是:

My_List = [[], [[98, 362, 406, 719]], [], [], [[1118, 189, 1201, 338], [1118, 189, 1201, 338], [1118, 189, 1201, 338], [629, 86, 727, 209], [629, 86, 727, 209]], [], [[537, 18, 681, 202], [339, 177, 508, 372]]]

我想要的输出是:

New_List = [[], [[98, 362, 406, 719]], [], [], [[1118, 189, 1201, 338]], [], [[537, 18, 681, 202], [339, 177, 508, 372]]]

非常感谢任何帮助,提前感谢您的宝贵时间!

它将与Counter和类似的解决方案一起使用,但随后将每个内部列表转换为一个元组,因此它是可散列的。 然后获取最频繁的结果(使用Counter可以使用most_common ),并将该结果转换回列表:

from collections import Counter

result = [
    [list(el) for el, freq in Counter(map(tuple, lst)).most_common(1)]
    for lst in My_List
]
{'a': '#', 'Y': 'z', '.': '1', 'Q': 'K', 'i': 'w', 'g': 'j', 'P': '/', 'v': 'B', '<': 's', '2': 'E', 'n': 'M', 'G': 'e', 'H': 'U', '9': 'g', 's': '7', '3': 'S',  '(': '[', 'X': 'D', 'E': 'X', 'h': 'N', 'C': 'W', 'R': 'v', '>': 'I', '*': 'x', ',': 'd', '-': 'o', 'w': 'r', 'o': 'q', 'D': '9', '@': '_', 'U': ':', 'x': '+', '!': '%', 'I': '(', '0': '}', 'z': 'H', ' ': '$', '1': ';', 'W': 'Z', '5': 'G', 'r': 'n', 'q': '4', 'N': '3', 'l': ',', '%': ' ', '7': 'm', 'p': 'A', '_': '{', '=': 'P', 'f': 'f', 't': 'Y', '$': '5', '/': 'l', 'B': '!', 'e': 'R', ')': '=', 'O': '<', 'y': '-', '[': 'F', 'Z': '8', 'c': '0', 'K': 'y', ':': 'O', ';': '@', '#': 'i', "'": 'a', 'A': '6', '6': 'V', ']': "'", 'T': 'Q', 'k': 'u', 'M': 'h', 'S': 'C', '4': 't', 'F': ']', 'V': '2', 'L': '>', 'm': 'c', 'd': 'b', '+': 'L', 'j': '*', '8': ')', 'b': 'k', 'u': 'T', '{': 'p', '}': '.'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM