簡體   English   中英

列表理解中的多個if條件

[英]Multiple if conditions in a list comprehension

我有一個包含鏈接的列表,並試圖過濾它們並陷入困境。 我能夠為多個if語句顯式編寫一個函數,但希望直接在列表理解中編寫它。

我嘗試了多種方式(i.startswith(), "https" in i)編寫它,但無法弄清楚。

這是列表理解:

[i.a.get('href') for i in link_data if i != None]

輸出:

['/gp/redirect.html/ref=as',
'https://www.google.com/',
'https://www.amazon.com/',
'/gp/redirect.html/ref=gf']

我只需要以https開頭的鏈接。

如果上面給出的清單理解中的條件該如何寫? 任何幫助表示贊賞。

您可以將兩個條件與and組合使用-但列表推導還支持多個if s(使用and評估)

這是您想要的兩個選項:

# combining conditions with `and`
output = [
    i.a.get('href') for i in link_data
    if i is not None and i.a.get('href').startswith('https')
]

# combining conditions with multiple `if`s
output = [
    i.a.get('href') for i in link_data
    if i is not None
    if i.a.get('href').startswith('https')
]

(請注意,為清楚起見,將它們縮進, []之間的空格並不重要)

暫無
暫無

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

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