Python:字典的值为List-Initiate
我想创建一个字典,其中的值是一个列表。现在,随着每一个新的传入密钥,我想开始一个新的列表。 如果我只是简单地尝试附加到字典键值,它会显示一个错误,因为该值尚未声明为列表,并且我无法在开始时执行此操作,因为我不知道将有多少个键。 例如(请注意,Python:字典的值为List-Initiate,python,Python,我想创建一个字典,其中的值是一个列表。现在,随着每一个新的传入密钥,我想开始一个新的列表。 如果我只是简单地尝试附加到字典键值,它会显示一个错误,因为该值尚未声明为列表,并且我无法在开始时执行此操作,因为我不知道将有多少个键。 例如(请注意,MyDictkeyList是可变的,这是以前不知道的) 我想创建的是: MyDict={'a': [[1, 2]], 'b': [[3, 4]]} 有办法吗?您可以使用setdefault 而不是MyDict[key[0]]。追加(key[1:]) 尝试使
MyDict
keyList
是可变的,这是以前不知道的)
我想创建的是:
MyDict={'a': [[1, 2]], 'b': [[3, 4]]}
有办法吗?您可以使用
setdefault
而不是MyDict[key[0]]。追加(key[1:])
尝试使用MyDict.setdefault(键[0],])。append(键[1])
因此,当您尝试附加值时,如果列表不存在,它将创建一个默认列表,然后将值附加到该列表中您可以使用
setdefault
而不是MyDict[key[0]]。追加(key[1:])
尝试使用MyDict.setdefault(键[0],])。append(键[1])
因此,当您尝试附加值时,如果列表不存在,它将创建一个默认列表,然后将值附加到该列表中您需要的是
defaultdict
,Python提供该列表正是为了此目的:
keyList = [['a',1,2],['b',3,4]]
MyDict=defaultdict(list)
for key in keyList:
MyDict[key[0]].append(key[1:])
print(MyDict)
输出
defaultdict(<class 'list'>, {'b': [[3, 4]], 'a': [[1, 2]]})
给予
您需要的是
defaultdict
,它与Python一起提供正是为了实现这一目的:
keyList = [['a',1,2],['b',3,4]]
MyDict=defaultdict(list)
for key in keyList:
MyDict[key[0]].append(key[1:])
print(MyDict)
输出
defaultdict(<class 'list'>, {'b': [[3, 4]], 'a': [[1, 2]]})
给予
使用collections.defaultdict。例如:
from collections import defaultdict
d = defaultdict(lambda: [])
d['key'].append('value to be add in list')
旁注:Defaultdict接受一个可调用的参数,这意味着您也可以通过以下方式创建dict:
defaultdict(list)
使用collections.defaultdict。例如:
from collections import defaultdict
d = defaultdict(lambda: [])
d['key'].append('value to be add in list')
旁注:Defaultdict接受一个可调用的参数,这意味着您也可以通过以下方式创建dict:
defaultdict(list)
是的,有。到目前为止你试过什么吗?使用defaultdict,
MyDict=defaultdict(list)
是的。到目前为止您尝试过什么吗?使用defaultdict,MyDict=defaultdict(list)