列表生成式中的 if else


列表推導式總共有兩種形式:

① [x for x in data if condition]

# 此處if主要起條件判斷作用,data數據中只有滿足if條件的才會被留下,最后統一生成為一個數據列表

② [exp1 if condition else exp2 for x in data]

# 此處if...else主要起賦值作用,當data中的數據滿足if條件時將其做exp1處理,否則按照exp2處理,最后統一生成為一個數據列表

示例:

#1-100中3的倍數
p = [x for x in range(1,101) if x%3 == 0]

#1-100中,不是3的倍數的數去相反數,其余的數保持不變
q = [x if x%3==0 else -x for x in range(1,101)]

# 根據 v 是否為 datetime.time 類型來判斷 (keys_list 和 item 都是列表;列表生成式生成字典時, else后面不用再寫 k)
{k: v if not isinstance(v, datetime.time) else v.strftime("%H:%M:%S")  for k, v in zip(keys_list, item)})

 

 

end


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM