Python - 列表推導式
列表推導式
當你想基於現有列表的值建立新列表時,列表推導式提供了一種更簡潔的語法。
示例
基於水果列表,你想要一個新的列表,其中只包含名字中帶有字母“a”的水果。
不使用列表推導式,你將不得不編寫一個 for
語句,並在其中包含一個條件測試。
示例
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []
for x in fruits
if "a" in x
newlist.append(x)
print(newlist)
自己動手試一試 »
使用列表推導式,你可以在一行程式碼中完成所有這些操作。
示例
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits if "a" in x]
print(newlist)
自己動手試一試 »
語法
newlist = [表示式 for 項 in 可迭代物件 if 條件 == True]
返回值是一個新列表,原有列表保持不變。
條件
條件 就像一個過濾器,只接受求值為 True
的項。
條件 if x != "apple" 將返回除“apple”之外的所有元素的 True
,從而使新列表包含除“apple”之外的所有水果。
條件 是可選的,可以省略。
可迭代物件
可迭代物件 可以是任何可迭代物件,例如列表、元組、集合等。
相同的例子,但帶有一個條件
表示式
表示式 是當前迭代中的項,但它也是結果,你可以在它最終成為新列表中的列表項之前對其進行操作。
你可以將結果設定為任何你喜歡的值。
表示式 也可以包含條件,不是作為過濾器,而是作為一種操作結果的方式。
上面的例子中的表示式 說
“如果項不是 banana,則返回該項;如果是 banana,則返回 orange”。