[英]Python check if Items are in list
我正在尝试遍历两个列表并检查 list_1 中的项目是否在 list_2 中。 如果 list_1 中的项目在 list_2 中,我想打印 list_2 中的项目。 如果该项目不在 list_2 中,我想从 list_1 打印该项目。 下面的代码部分实现了这一点,但因为我正在执行两个 for 循环,所以我得到了 list_1 的重复值。 你能指导我以 Pythonic 的方式完成吗?
list_1 = ['A', 'B', 'C', 'D', 'Y', 'Z']
list_2 = ['Letter A',
'Letter C',
'Letter D',
'Letter H',
'Letter I',
'Letter Z']
for i in list_1:
for x in list_2:
if i in x:
print(x)
else:
print(i)
当前 Output:
Letter A
A
A
A
A
A
B
B
B
B
B
B
C
Letter C
C
C
C
C
D
D
Letter D
D
D
D
Y
Y
Y
Y
Y
Y
Z
Z
Z
Z
Z
Letter Z
所需的 Output:
Letter A
B
Letter C
Letter D
Y
Letter Z
你可以写:
for i in list_1:
found = False
for x in list_2:
if i in x:
found = True
break
if found:
print(x)
else:
print(i)
上面的方法确保您打印x
或i
,我们只在list_1
每个元素打印一个值。
你也可以写(这与上面的内容相同但是利用了for
循环添加else
的能力):
for i in list_1:
for x in list_2:
if i in x:
print(x)
break
else:
print(i)
for i in list_1:
found = False
for x in list_2:
if i in x:
found = True
print(x)
if found == False:
print(i)
Oneliner:
[print(i) for i in ["Letter {}".format(i) if "Letter {}".format(i) in list_2 else i for i in list_1]]
输出:
Letter A
B
Letter C
Letter D
Y
Letter Z
for i in list_1: for x in list_2: if i not in x: continue else: print(x)
for i in range(len(list_1)):
if list_1[i] in list_2[i]:
print(list_2[i])
else:
print(list_1[i])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.