基本上我有两个项目列表,我想检查第二个列表中的项目是否在第一个列表中。然后,如果该项目在第一个列表中,我想为变量赋值,如果它不在该列表中,我想为同一个变量分配不同的值。 (如下) 可以这样做吗?
list1 = ['dog','cat','mouse']
list2 = ['dog','tutle','bird']
if list2 in list1:
square = 77
else:
square = 55
print(square)
答案 0 :(得分:0)
if not set(list1).isdisjoint(list2):
如果它们没有共同的元素,则两组是不相交的。
或者使用any()
function和generator expression来依次测试list2
中的每个值:
if any(value in list1 for value in list2):
square = 77
else:
square = 55
甚至:
square = 77 if any(value in list1 for value in list2) else 55
如果value in list1
是一组,那么list1
测试会更有效率。
答案 1 :(得分:-1)
回答你问的问题:
list1 = ['dog','cat','mouse']
list2 = ['dog','tutle','bird']
for elem in list2:
if elem in list1:
square = 77
else:
square = 55
print(elem, "square=", square)
但搜索列表需要花费大量时间。您可以通过一组来获得一些加速:
set1 = set(list1)
for elem in list2:
if elem in set1:
square = 77
else:
square = 55
print(elem, "square=", square)
请注意,上面的代码在list2中搜索list2中的每个值。如果你想查看list1中是否存在list2中的任何值,那么应该这样做:
set1 = set(list1)
set2 = set(list2)
if set1.intersection(set2):
square = 77
else:
square = 55