问题描述
List_1 = ['1_1.jpg','1_1_right.jpg','1_1_left.jpg','1_2.jpg','1_2_right.jpg','1_2_left.jpg']
List_2 = [i for i in List_1 if 'left'or'right' in i]
但它仍然给我与以下相同的列表
List_2 = ['1_1.jpg','1_2_left.jpg']
实际上,我想要的是这样的
List_2 = ['1_1_right.jpg','1_2_left.jpg']
解决方法
or
在Python中不是这样,您必须先完成完整条件。
if 'left' or 'right' in i
实际上是if 'left' or ('right' in i)
尝试:
if ('left' in i) or ('right' in i)
,
您绝对必须使用列表理解吗?您也可以为此使用常规的for循环:
List_1 = ['1_1.jpg','1_1_right.jpg','1_1_left.jpg','1_2.jpg','1_2_right.jpg','1_2_left.jpg']
expected = []
for i in List_1:
if 'left' in i or 'right' in i:
expected.append(i)
print(expected)