Python 字典推導式


在本教程中,我們將學習如何在 Python 中使用字典推導式。如果您已經熟悉列表推導式,那麼學習字典推導式將不會花費太多時間。

我們需要鍵值對來建立字典。如何使用字典推導式獲取這些鍵值對?請參見字典推導式的通用語句。

{key: value for ___ in iterable}

我們需要填寫上述語句以完成字典推導式。有很多方法可以填寫它。讓我們看看一些最常見的方法。

讓我們看看如何在 10 的範圍內生成數字作為鍵,並將它們的平方作為值。我們的結果應類似於 {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}。請參見下面的程式碼。

示例

 即時演示

# creating the dictionary
squares = {i: i ** 2 for i in range(10)}
# printing the dictionary
print(squares)

輸出

如果您執行上述程式碼,將得到以下結果。

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

如何使用此推導式從兩個列表建立字典?我們可以使用 zip 方法從兩個列表獲取並行值。讓我們看看如何從 [1, 2, 3, 4, 5][a, b, c, d, e] 建立字典。

示例

 即時演示

# keys
keys = ['a', 'b', 'c', 'd', 'e']
# values
values = [1, 2, 3, 4, 5]
# creating a dict from the above lists
dictionary = {key: value for (key, value) in zip(keys, values)}
# printing the dictionary
print(dictionary)

輸出

如果您執行上述程式,將得到以下輸出。

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

我們還可以使用 enumerate 方法從單個列表生成一個字典,其中索引作為鍵。讓我們看看如何做到這一點。

示例

 即時演示

# values
values = ['a', 'b', 'c', 'd', 'e']
# generating a dict using enumerate
dictionary = {key: value for (key, value) in enumerate(values)}
# printing the dict
print(dictionary)

輸出

如果您執行上述程式碼,則將得到以下輸出。

{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}

結論

您可以根據需要使用字典推導式。學習掌握字典推導式的最佳方法是在有可能性時隨時使用它們。如果您在本教程中有任何疑問,請在評論部分提出。

更新於: 2020-04-24

286 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.