我无法设置秘密列表,也无法比较列表中的三个项目。
a_set = set(a)
b_set = set(b)
if len(a_set.intersection(b_set)) > 3:
return True
return False
a = [10,20,'Python', 10.20, 10+20j, [10,20,30], (10,20,30)]
b = [(10,20,30),1,20+3j,100.2, 10+20j, [10,20,30],'Python']
print(common_ele(a, b))发布于 2022-08-12 13:27:41
您可以定义一个帮助函数,用于将列表转换为集合:
import collections
from typing import Union
def make_into_set(xs: list[Union[int, str, float, complex, list[int], tuple[int, ...]]]) \
-> set[Union[int, str, float, complex, tuple[int, ...]]]:
return {x if isinstance(x, collections.abc.Hashable) else str(x) for x in xs}
def common_ele(a: list[Union[int, str, float, complex, list[int], tuple[int, ...]]],
b: list[Union[int, str, float, complex, list[int], tuple[int, ...]]]) -> bool:
a_set = make_into_set(a)
b_set = make_into_set(b)
return len(a_set.intersection(b_set)) > 3
a = [10, 20, 'Python', 10.20, 10+20j, [10, 20, 30], (10, 20, 30)]
b = [(10, 20, 30), 1, 20+3j, 100.2, 10+20j, [10, 20, 30], 'Python']
print(common_ele(a, b))输出:
True发布于 2022-08-12 13:43:13
def commonElement(a: list, b: list):
common = 0
for i in a:
if i in b:
common += 1
if common > 3:
return True
a = [10,20,'Python', 10.20, 10+20j, [10,20,30], (10,20,30)]
b = [(10,20,30),1,20+3j,100.2, 10+20j, [10,20,30],'Python']
print(commonElement(a, b))True共同要素是:
Python
(10+20j)
[10, 20, 30]
(10, 20, 30)发布于 2022-08-12 14:37:54
首先,对于list1的每个元素,我们将检查是否有任何list2元素与其相同,如果是相同的,我们将增加相同元素的数量,相同的+= 1,在检查所有需要检查的元素之后,这些元素都大于3。
def check(list1, list2):
same = 0 # number of the same elemetns
for element1 in list1:
for element2 in list2:
if element1 == element2: # check all of the elements
same += 1
return True if same>=3 else False返回代码(最后一行)与以下代码相同:
if same >=3:
return True
else:
return False或者您可以这样使用:首先,对于所有的list1元素,检查它是否在列表2中,如果它们在list2中,它将把1附加到列表的其他2中,然后,我们将计算有多少个1,如果有3个或更多的返回,True else返回False。
def checkSame(list1, list2):
same = [(1 if i in list2 else 0) for i in list1].count(1)
return True if same >= 3 else Falsehttps://stackoverflow.com/questions/73334640
复制相似问题