列表推導式總共有兩種形式:
① [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