簡體   English   中英

Python:For循環遍歷列表

[英]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>

但這會增加縮進程度

  1. [b(x) for x in X if a(x)]是最簡單的,但會創建不必要的列表。

  2. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM