【问题标题】:How do I count shared elements between 2 different lists? (Python) [duplicate]如何计算 2 个不同列表之间的共享元素? (Python)[重复]
【发布时间】:2021-09-06 15:43:12
【问题描述】:

我正在尝试让程序计算共享 2 个不同列表中的元素的数量。

一个列表是随机的。

import random

Lotterya = [random.randint(1,49) for _ in range(6)]

另一个是用户输入。

Lotteryb = []
while len(Lotteryb) < 6:
    n = int(input("enter number: "))
    Lotteryb.append(n)

我用什么代码让程序说:"There are _ numbers in common."

【问题讨论】:

  • 代码中的任何内容都不算什么。简单的(效率不高 - 但是有 6 个数字,这个“效率”是一个有争议的点,因为设置的开销)方式将是一个循环,并检查数字是否为 in 另一个列表,然后增加一个计数器.下次请将您的代码设为minimal reproducible example(提示:包括,您尝试解决的问题)并展示您的努力以及问题所在。

标签: python


【解决方案1】:

同时转换为设置和取交集

x = set(Lotterya)
y = set(Lotteryb)

z = x.intersection(y)

print(z)

【讨论】:

    【解决方案2】:

    将两个列表转换为集合并找到交点以找到共同的元素。如下图:-

    list1 = [1, 2, 3, 2, 3, 2, 1, 1, 1]
    list2 = [1, 4, 3, 5, 2, 7, 8, 2, 1]
    
    set1 = set(list1)
    set2 = set(list2)
    
    result = set1.intersection(set2)
    print(result)  # elements that are common
    print(len(result))  # number of elements that are common
    

    这可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-02-21
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-12
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多