如何解决当我在列表中编写逻辑运算符以查找我想要的关键字但有点奇怪时
我有一个这样的List_1
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。