python - 是否可以在列表理解中使用“通过”?
问题描述
我正在尝试使用列表理解在 if-else 语句中使用 pass。这是我正在尝试做的一个例子。
result = [x if condition1 else y if condition2 else pass for x in lisst]
condition1
andcondition2
是可以依赖的表达式x
- 如果
condition1
为真,我想x
被包含在结果中。 - 如果
condition2
为真,我希望y
(一些常数)包含在结果中。 - 这
lisst
是一个项目列表
问题
当两者condition1
和condition2
都是False
时,我想pass
(跳过那个x
)。我怎样才能在列表理解中做到这一点?
解决方案
如果你想过滤掉元素,那么只需使用它的专用语法:
[x for x in lisst if x == 2]
对于您的新编辑:
[x if x == 2 else 7 for x in lisst if x in (2, 5)]
对于您的第三次编辑(请在人们回答问题后停止编辑问题):
def func(x):
if condition1:
return x
if condition2:
return y
return None
result = [v for v in [func(x) for x in lisst] if v is not None]
推荐阅读
- google-sheets - FILTER() 与 Google 表格中其他列的完整性问题
- mysql - 为什么我必须在这里使用 group by?
- apache-kafka-connect - 如何配置 Confluent Kafka Connect 本地 S3 接收器
- angular - PWA 不适用于构建版本,仅适用于本地主机上的 prod 构建版本
- python - 有什么方法可以在 Django 中的模型内部进行过滤?
- sql - 从 MS Access DB 表中提取带有条件和分组的数据
- python - Python Flask 应该只执行一次
- list - NoSuchMethodError:将值添加到列表 Flutter 时,在 null 上调用了方法“add”
- python - 如何让我的 Discord 机器人在每周日 0:00 运行一个功能?
- typescript - 在打字稿中声明函数类型的不同方法?