繁体   English   中英

从第三个列表中找到两个列表中最常见的数字,获取最常见元素的列表

[英]Find the most common number in two lists from a third list, get list with most common elements

我在这里创建了这段代码:

list_1 = [1.04, 1.1, 1.87, 1.05, 1.09, 1.53]
list_2 = [4.36, 1.92, 7.20, 6.12]

common_items = [4.36, 1.92, 1.04, 1.1, 1.87]

most_common = []

for x in common_items:
    for y in [list_1, list_2]:
        common = set(common_items).intersection(y)
        common = list(common)

        for z in common:
            if z in y:
                most_common = y

print(most_common)

>>> [4.36, 1.92, 7.2, 6.12]

它旨在获取第三个数组中最常见的元素。 例如, list_2中只有两个公共元素,而list_1中只有三个。 我希望能够将list_1识别为正确的。 为什么要打印list_2

只需遍历 eash 可能的列表,然后为每个计算共同项目的数量,保留最大的项目

most_common = []
most_common_count = 0

for y in [list_1, list_2]:
    common_count = len(set(common_items).intersection(y))
    if common_count > most_common_count:
        most_common_count = common_count
        most_common = y

可以通过内置的max来实现

common_items = {4.36, 1.92, 1.04, 1.1, 1.87}

most_common = max([list_1, list_2],
                  key=lambda y: len(common_items.intersection(y)))

暂无
暂无

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

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