[英]Python: For loop over list comprehension
有沒有更短的書寫方式
for x in [x for x in X if a(x)]:
<Do something complicated with x>
不幸的是,以下操作無效:
for x in X if a(x):
<Do something complicated with x>
當然,我可以通過
for x in X:
if a(x):
<Do something complicated with x>
但這會增加縮進程度
[b(x) for x in X if a(x)]
是最簡單的,但會創建不必要的列表。
map(b, (x for x in X if a(x)))
將使用生成器,因此不會創建不需要的列表。
並非每個人都喜歡以下內容,但我非常喜歡map和filter函數以提高可讀性...
list(map(b, filter(a, X))
它將實現您想要的,並且我認為更容易看到正在發生的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.