【发布时间】:2021-06-08 13:49:14
【问题描述】:
我想编写一个单行 if-else 语句,如果第一个条件不满足,它什么也不做。 This question 与我想要实现的非常相似,但是当条件不满足时,我希望我的代码为pass(什么都不做)。
换句话说:
# Some list
cols = ['firstname', 'middlename', 'lastname', 'dob', 'gender', 'salary']
# Filter elements in list
[col if 'name' in col else pass for col in cols]
# Expected output
> ['firstname', 'middlename', 'lastname']
看完this other post中的cmets后,我也尝试跳过else语句:
[col if 'name' in col for col in cols]
> SyntaxError: invalid syntax
我想简化为单行的语法是:
my_list = []
for col in cols:
if 'name' in col:
my_list.append(col)
上面的代码可以简化为单行代码吗?
【问题讨论】:
-
[col for col in cols if 'name' in col]? -
您不需要明确的 else 语句,只需将其从列表理解中删除即可。
标签: python