python - 通过过滤列表进行循环
问题描述
我有代码
for item in list:
if item.some_boolean_property():
several complicated commands here
我想将这些压缩for
成if
一个表达式,以便命令可以减少一级缩进。我能够将其重构为代码
for item in [item for item in list if item.some_boolean_property()]:
several complicated commands here
它确实有效,但是,你知道,它是丑陋的。:) 有没有更聪明的方法来做到这一点?
解决方案
要保存一个缩进级别,请使用continue
跳过您不感兴趣的迭代:
for item in list:
if not item.some_boolean_property():
continue # skip this iteration
# several complicated commands here,
# one indentation level less than above!
推荐阅读
- azure - Azure:在 blob_client 中找不到资源
- apache-kafka-streams - 聚合用例 - 按两个不同的 kafka 流分组并计算平均值
- python - 替换一个特定对象的类方法
- javascript - 有没有办法使用该查询(搜索)可以从firebase不区分大小写?
- javascript - 如果 GET 请求失败,则将 null 作为值传递
- cocoa - 强制 NSStatusItem 重绘
- javascript - .sort 在 Firefox 中不起作用,但在 chrome 中起作用
- python - 如何从图表中获取值?
- php - 如何以及在哪里可以在 drupal 7 中定义和调用函数 (php)
- android - 先填充网格布局管理器列,然后填充行