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: []})}
結論
我們討論了字典網格以探索解決此問題陳述的各種方法。此程式允許使用者匹配來自單個列表的對應元素,並在字典中建立鍵值對。因此,這是一種構建相關資料的更簡單方法。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP