簡體   English   中英

通過字典理解創建具有列表值的字典?

[英]Create a Dictionary with List Values through a Dict Comprehension?

假設我有

a = [1,2,3,4,5]

我正在嘗試創建字典

dictObj = { (key,[]) for key in a}

但我收到了無法散列的類型錯誤。 這對我來說似乎很奇怪,因為如果值是列表就可以了嗎? 我想知道是否有人可以告訴我用於創建哈希表的正確語法,該哈希表中的所有鍵都是a中的元素,每個鍵都指向一個空數組。

字典理解中的鍵和值不表示為元組,它們只是用分隔:

dictObj = {key:[] for key in a}

你是這個意思嗎

dictObj = { key:[] for key in a}

如果要保留現有內容,則需要包裝dict()而不是大括號:

dict((key, []) for key in a)

與其他人提供的相同,但語法略有不同。

另外,如果要使用空列表初始化字典,則應查看collections.defaultdict ,它將把鍵初始化為所選的任何類型。 這樣可以避免您必須自己執行此操作。

這是一個示例用法:

from collections import defaultdict

d = defaultdict(list)
a = [1,2,3,4,5]

for key in a:
    print(key, ':', d[key])

輸出每個項目的初始化列表,如下所示:

1 : []
2 : []
3 : []
4 : []
5 : []

然后,您可以從此處向每個鍵添加項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM