簡體   English   中英

在這種情況下我們可以形成一個Python列表理解嗎?

[英]Can we form a Python List Comprehension in this case?

我最近了解到,我們可以在 python 列表解析中包含多個循環,就像傳統方式中的 for 循環序列一樣。 因此,可以添加一個嵌套的 for 循環而不是另一個 for 循環作為列表推導,如下所示:

result_list = [sub for part in parts for sub in part if sub > 10]

但是,我在一種情況下感到困惑,即“子”的數量太長,而在 rest 上,即使有一個子違反了規則,也可以完全忽略 if 的條件。 因此,我沒有檢查零件中的所有子,而是在條件中斷時打破循環並繼續下一個零件。

我正在從我正在處理的代碼中分享一個場景。

for part in parts:
    for sub in part:
        if sub not in a_list:
            var = False
            break
    if var == True:
        b_list.append(part)

上面的代碼有效。 只是出於對學習語言的好奇,我們可以用列表理解格式來做嗎?

我在這,如果我錯過了什么,很抱歉。

列表理解語法增加了對可選決策/條件的支持。 將條件邏輯添加到列表推導的最常見方法是在表達式末尾添加條件:

像這樣:

new_list = [expression for member in iterable (if conditional)]

在這里,您的條件語句/if 語句就在右括號之前或循環之后,如果有多個循環,就像我的場景一樣。

條件/決策很重要,因為它們允許列表推導過濾掉不需要的值,這通常需要調用filter():

這是您要求的完整列表理解:

b_list = [part for part in parts if all(sub in a_list for sub in part)]

有關列表理解的更多信息或幫助,請轉到此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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