![](/img/trans.png)
[英]How to use extract a list of keys with specific pattern from dict in python?
[英]How to initialize a dict with keys from a list and empty value in Python?
我想從中得到:
keys = [1,2,3]
對此:
{1: None, 2: None, 3: None}
有沒有一種蟒蛇式的方式來做到這一點?
這是一種丑陋的方法:
>>> 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])
這實際上是一個類方法,因此它也適用於 dict 子類(如collections.defaultdict
)。 可選的第二個參數指定用於鍵的值(默認為None
。)
沒有人願意給出一個 dict-comprehension 解決方案嗎?
>>> 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}
dict.fromkeys(keys, None)
>>> keyDict = {"a","b","c","d"}
>>> dict([(key, []) for key in keyDict])
輸出:
{'a': [], 'c': [], 'b': [], 'd': []}
d = {}
for i in keys:
d[i] = None
在要附加任意鍵默認/初始值許多工作流程,你不需要散列每個鍵單獨的時間提前。 您可以使用collections.defaultdict
。 例如:
from collections import defaultdict
d = defaultdict(lambda: None)
print(d[1]) # None
print(d[2]) # None
print(d[3]) # None
這更有效,它無需在實例化時散列所有密鑰。 此外, defaultdict
是dict
的子類,因此通常不需要轉換回常規字典。
對於需要對允許的鍵進行控制的工作流,您可以根據接受的答案使用dict.fromkeys
:
d = dict.fromkeys([1, 2, 3, 4])
我想從中得到:
keys = [1,2,3]
對此:
{1: None, 2: None, 3: None}
有pythonic的方法嗎?
這是一個丑陋的方法:
>>> keys = [1,2,3]
>>> dict([(1,2)])
{1: 2}
>>> dict(zip(keys, [None]*len(keys)))
{1: None, 2: None, 3: None}
我想從中得到:
keys = [1,2,3]
對此:
{1: None, 2: None, 3: None}
有pythonic的方法嗎?
這是一個丑陋的方法:
>>> keys = [1,2,3]
>>> dict([(1,2)])
{1: 2}
>>> dict(zip(keys, [None]*len(keys)))
{1: None, 2: None, 3: None}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.