Python 列表推導式


我們可以使用給定的 Python 序列建立新的序列。這被稱為推導式。它基本上是一種編寫簡潔的程式碼塊來生成序列的方法,該序列可以使用另一個序列生成列表、字典、集合或生成器。它可能涉及不同型別序列之間多個步驟的轉換。

列表推導式

在這種方法中,我們透過操作現有列表的值來建立一個新列表。在下面的示例中,我們獲取一個列表,並透過向給定列表的每個元素新增 3 來建立一個新列表。

示例

given_list = [x for x in range(5)]
print(given_list)

new_list = [var+3 for var in given_list]

print(new_list)

輸出

執行以上程式碼將得到以下結果:

[0, 1, 2, 3, 4]
[3, 4, 5, 6, 7]

字典推導式

類似於上面,我們可以獲取一個列表並從中建立一個字典。

示例

given_list = [x for x in range(5)]
print(given_list)

#new_list = [var+3 for var in given_list]
new_dict = {var:var + 3 for var in given_list }

print(new_dict)

輸出

執行以上程式碼將得到以下結果:

[0, 1, 2, 3, 4]
{0: 3, 1: 4, 2: 5, 3: 6, 4: 7}

我們還可以獲取兩個列表並從中建立一個新的字典。

示例

list1 = [x for x in range(5)]
list2 = ['Mon','Tue','Wed','Thu','Fri']
print(list1)
print(list2)

new_dict ={key:value for (key, value) in zip(list1, list2)}

print(new_dict)

輸出

執行以上程式碼將得到以下結果:

[0, 1, 2, 3, 4]
['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
{0: 'Mon', 1: 'Tue', 2: 'Wed', 3: 'Thu', 4: 'Fri'}

集合推導式

我們可以採用與上面類似的方法,並從現有的集合或列表中建立一個新的集合。在下面的示例中,我們透過向現有集合的元素新增 3 來建立一個新的集合。

示例

given_set = {x for x in range(5)}
print(given_set)

new_set = {var+3 for var in given_set}

print(new_set)

輸出

執行以上程式碼將得到以下結果:

{0, 1, 2, 3, 4}
{3, 4, 5, 6, 7}

生成器推導式

可以從現有列表建立新的生成器。這些生成器在記憶體方面效率很高,因為它們是在生成專案時分配記憶體,而不是在開始時分配記憶體。

示例

given_list = [x for x in range(5)]
print(given_list)

new_set = (var+3 for var in given_list)

for var1 in new_set:
   print(var1, end=" ")

輸出

執行以上程式碼將得到以下結果:

[0, 1, 2, 3, 4]
3 4 5 6 7

更新於: 2019年10月17日

3K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告