Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Dict初始化语法中的列表列表_Python_Dictionary - Fatal编程技术网

Python Dict初始化语法中的列表列表

Python Dict初始化语法中的列表列表,python,dictionary,Python,Dictionary,我试图在dicts中存储列表,这很有效,但我不喜欢我构建/初始化列表的方式。我想去掉:dummy[I]=[1,2,3]。有什么建议吗 dummy = dict() alphabet = ["aaa", "bbb", "ccc"] for i in alphabet: dummy[i] = [(1,2,3)] # <-- better initialization? dummy[i].append([(1,2,3)]) 旁白:还有其他数据类型支持一个键的多个值吗?允许

我试图在dicts中存储列表,这很有效,但我不喜欢我构建/初始化列表的方式。我想去掉:dummy[I]=[1,2,3]。有什么建议吗

dummy = dict()

alphabet = ["aaa", "bbb", "ccc"]

for i in alphabet:
    dummy[i] = [(1,2,3)] # <-- better initialization? 
    dummy[i].append([(1,2,3)])
旁白:还有其他数据类型支持一个键的多个值吗?

允许您为不存在的键指定初始值设定项

import collections

dummy = collections.defaultdict(list)

alphabet = ["aaa", "bbb", "ccc"]

for i in alphabet:
    dummy[i].append([(1,2,3)])
    dummy[i].append([(1,2,3)])

使用Ignacio的建议或使用:


如果您有重复键setdefault和defaultdict,您需要的是。

您能详细说明一下吗?就目前而言,很难衡量你的要求。例如,你所说的“我想摆脱”是什么意思:dummy[I]=[1,2,3]我不喜欢在dict中初始化列表的方式。{I进行了编辑}是否更清晰?键的值应该是什么?看起来你的代码目前做的事情不对。我打印了输出,它是一个dict,它为每个键收集列表列表太棒了!这正是我想要的。使用集合时是否需要考虑什么?DeFruttDIt?如果初始化器每次调用它时返回相同的可变对象,那么每个缺失的密钥都将具有相同的值。谢谢您的澄清!非常酷,在使用这个片段时我应该考虑什么?@ USE171774,Debug是更有效的,但是有时候嵌套的StuteDebug实际上更适合。
import collections

dummy = collections.defaultdict(list)

alphabet = ["aaa", "bbb", "ccc"]

for i in alphabet:
    dummy[i].append([(1,2,3)])
    dummy[i].append([(1,2,3)])
dummy = dict()

alphabet = ["aaa", "bbb", "ccc"]

for i in alphabet:
    dummy.setdefault(i,[]).append((1,2,3)) # <-- better initialization? 
alphabet = ["aaa", "bbb", "ccc"]
dummy = {k:[(1,2,3)] for k in alphabet}

print(dummy)
{'aaa': [(1, 2, 3)], 'bbb': [(1, 2, 3)], 'ccc': [(1, 2, 3)]}