Python|检查两个列表是否至少有一个共同元素
给定两个列表a,b。检查两个列表中是否至少有一个共同的元素。
例子:
Input : a = [1, 2, 3, 4, 5]
b = [5, 6, 7, 8, 9]
Output : True
Input : a=[1, 2, 3, 4, 5]
b=[6, 7, 8, 9]
Output : False
方法一:List的遍历
在两个列表中使用遍历,我们可以检查它们中是否至少存在一个共同元素。在遍历两个列表时,如果我们发现其中一个元素是共同的,那么我们返回 true。完成遍历和检查后,如果没有相同的元素,则返回 false。
# Python program to check
# if two lists have at-least
# one element common
# using traversal of list
def common_data(list1, list2):
result = False
# traverse in the 1st list
for x in list1:
# traverse in the 2nd list
for y in list2:
# if one common
if x == y:
result = True
return result
return result
# driver code
a = [1, 2, 3, 4, 5]
b = [5, 6, 7, 8, 9]
print(common_data(a, b))
a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9]
print(common_data(a, b))
输出:
True
False
方法 2:使用 Set 和 Property
使用set 和 property ,如果至少存在一个公共元素,则 set(a)&set(b) 返回一个正整数,如果不包含任何正整数,则返回 0。所以我们在 set_a 中插入 a,在 set_a 中插入 b set_b 然后检查 set_a 和 set_b 是否为正整数。
# Python program to check
# if two lists have at-least
# one element common
# using set and property
def common_member(a, b):
a_set = set(a)
b_set = set(b)
if (a_set & b_set):
return True
else:
return False
a = [1, 2, 3, 4, 5]
b = [5, 6, 7, 8, 9]
print(common_member(a, b))
a =[1, 2, 3, 4, 5]
b =[6, 7, 8, 9]
print(common_member(a, b))
输出:
True
False
方法3:使用集合交集
使用集合的交集内置函数。 a_set.intersection(b_set) 如果至少有一个共同元素,则返回一个正整数,否则返回 0。所以我们在 set_a 中插入 a,在 set_b 中插入 b,然后检查 a_set.intersection(b_set),并根据价值。
# Python program to check
# if two lists have at-least
# one element common
# using set intersection
def common_member(a, b):
a_set = set(a)
b_set = set(b)
if len(a_set.intersection(b_set)) > 0:
return(True)
return(False)
a = [1, 2, 3, 4, 5]
b = [5, 6, 7, 8, 9]
print(common_member(a, b))
a =[1, 2, 3, 4, 5]
b =[6, 7, 8, 9]
print(common_member(a, b))
输出:
True
False