Python - K列表字典網格


字典網格的定義是將每個鍵集的值對儲存到字典中。將K列表包含在字典中意味著將列表作為值對插入。在Python中,我們有一些內建函式,例如defaultdict()和lambda將用於解決K列表字典網格問題。

讓我們來看一個例子。

給定輸入列表,

list1 = [10, 20, 30]
list2 = [40, 50]

最終輸出變為

{10: {40: [], 50: []}, 20: {40: [], 50: []}, 30: {40: [], 50: []}}

語法

以下語法在示例中使用 -

lambda

lambda函式提供了一種使用lambda關鍵字宣告簡短匿名函式的快捷方式。lambda函式只包含簡單的表示式。

defaultdict()

defaultdict()是Python中的一個內建函式,它建立一個簡單的字典,但它使用集合模組進行初始化。

示例1:使用巢狀for迴圈

在以下示例中,我們將從將兩個列表值分別儲存在變數list1和list2中開始程式。然後將空字典儲存在變數K中,這將建立字典形式的結果。然後使用for迴圈,其中變數i遍歷第一個列表,即list1,並將元素設定為鍵,並將值設定為{}。接下來,使用另一個for迴圈遍歷list2,並將二維陣列設定為第一個列表的值,並顯示輸出。

示例

list1 = [3, 2]
list2 = [30, 20]
K = {}
for i in list1:
    K[i] = {}
    for j in list2:
        K[i][j] = []
print("Result of Dictionary Mesh:\n", K)

輸出

Result of Dictionary Mesh:
 {3: {30: [], 20: []}, 2: {30: [], 20: []}}

示例2:使用字典推導和巢狀迴圈

在以下示例中,從建立各自變數的兩個列表開始程式。然後使用字典推導,其中一個空列表和兩個巢狀for迴圈遍歷兩個輸入列表以概括結果。

示例

list1 = [1, 2, 3, 4]
list2 = [100, 200]
K = {i: {j: [] for j in list2} for i in list1}
print("Result of Dictionary Mesh:\n", K)

輸出

Result of Dictionary Mesh:
 {1: {100: [], 200: []}, 2: {100: [], 200: []}, 3: {100: [], 200: []}, 4: {100: [], 200: []}}

示例3:使用collections模組中的defaultdict

在以下示例中,我們將從匯入庫collections中的defaultdict模組開始程式,該模組允許使用者將預設值設定為鍵。然後在變數list1和list2中建立兩個輸入列表。接下來,定義內建函式defaultdict()和lambda來計算字典網格。繼續使用遍歷兩個輸入列表的巢狀for迴圈並找到結果。

示例

from collections import defaultdict
list1 = [10, 20, 30, 40, 50]
list2 = [5, 6, 7]
K = defaultdict(lambda: defaultdict(list))
for i in list1:
    for j in list2:
        K[i][j] = []
print(dict(K))

輸出

{10: defaultdict(<class 'list'>, {5: [], 6: [], 7: []}), 20: defaultdict(<class 'list'>, {5: [], 6: [], 7: []}), 30: defaultdict(<class 'list'>, {5: [], 6: [], 7: []}), 40: defaultdict(<class 'list'>, {5: [], 6: [], 7: []}), 50: defaultdict(<class 'list'>, {5: [], 6: [], 7: []})}

結論

我們討論了字典網格以探索解決此問題陳述的各種方法。此程式允許使用者匹配來自單個列表的對應元素,並在字典中建立鍵值對。因此,這是一種構建相關資料的更簡單方法。

更新於: 2023年8月17日

90次檢視

開啟您的職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.