【发布时间】:2020-12-10 12:34:59
【问题描述】:
有没有办法在python中做这样的事情,如果一个值等于一组值中的一个,if语句返回true(不使用or然后复制第一个表达式和条件) ?
li1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
li2 = []
for n in li1:
if n == 2, 3, 5, 8:
li2.append(n)
这是一个没有列表理解的示例,但考虑到它的全部意义在于使代码更短,我希望有类似的列表理解。
li = [int + 1 for int in range(10) if int == 2, 3, 5, 8]
但我还没有找到任何可以做到这一点的东西。我知道你可以使用or 做这样的事情,
li = [int + 1 for int in range(10) if int + 1 == 2 or int + 1 == 3 or int + 1 == 5 or int + 1 == 8]
但它看起来很长。我尝试了很多方法,例如使用列表、元组、range()、or(不复制第一个表达式和条件)等。它要么只是说语法无效,要么没有做正确的事情。我真的不知道如何表达这个问题,所以我不能使用谷歌搜索。
如果有人知道这是否可以做到,请提前谢谢! :)
【问题讨论】:
-
你的意思是
if n in {2,3,5,8}?
标签: python list if-statement list-comprehension