我想從這個獲得:如何用列表中的鍵和Python中的空值初始化字典?
keys = [1,2,3]
這樣:
{1: None, 2: None, 3: None}
有沒有做這件事的Python的方式?
這是一個醜陋的方式來做到這一點:
>>> keys = [1,2,3]
>>> dict([(1,2)])
{1: 2}
>>> dict(zip(keys, [None]*len(keys)))
{1: None, 2: None, 3: None}
我想從這個獲得:如何用列表中的鍵和Python中的空值初始化字典?
keys = [1,2,3]
這樣:
{1: None, 2: None, 3: None}
有沒有做這件事的Python的方式?
這是一個醜陋的方式來做到這一點:
>>> keys = [1,2,3]
>>> dict([(1,2)])
{1: 2}
>>> dict(zip(keys, [None]*len(keys)))
{1: None, 2: None, 3: None}
dict.fromkeys([1, 2, 3, 4])
這實際上是一個類方法,所以它適用於字典亞類(如collections.defaultdict
)爲好。可選的第二個參數指定要使用的密鑰的值(默認爲None
。)
無人照顧,得到一個字典-理解溶液?
>>> keys = [1,2,3,5,6,7]
>>> {key: None for key in keys}
{1: None, 2: None, 3: None, 5: None, 6: None, 7: None}
>>> keyDict = {"a","b","c","d"}
>>> dict([(key, []) for key in keyDict])
輸出:
{'a': [], 'c': [], 'b': [], 'd': []}
儘管此代碼可能會回答這個問題,但提供有關_how_和/或_why_的其他上下文可以解決問題,從而提高答案的長期價值。 –
'keyDict'的名稱會讓人誤解,因爲第一行代碼返回的是set,而不是'dict'。 –
小心初始化的東西可變的:如果你調用,如'dict.fromkeys([1,2,3],[])',所有的鍵都被映射到相同的列表中,修改其中一個將會修改它們。 – charleslparker