Python 如何创建一个每个键有多个值的字典?

Python 如何创建一个每个键有多个值的字典?,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我想创建一个字典,其中包含多个值,这些值以键“0”的值列表的形式精确表示。但是,当我使用zip函数时,它只给出该键的最后更新值,而不是附加到该键的所有值。 下面是代码 上述代码的输出: {0:[2,2],1:[1,0],2:[2,0],-1:[2,1]} 所需输出: {0:[[0,0]、[0,1]、[0,2]、[1,1]、[1,2]、[2,2]、1:[1,0]、2:[2,0]、-1:[2,1]}如前所述,您所要求的格式不是有效的python,因为它包含没有键的条目,但我相信以下内容对您有用: 值

我想创建一个字典,其中包含多个值,这些值以键“0”的值列表的形式精确表示。但是,当我使用zip函数时,它只给出该键的最后更新值,而不是附加到该键的所有值。 下面是代码

上述代码的输出:

{0:[2,2],1:[1,0],2:[2,0],-1:[2,1]}

所需输出:


{0:[[0,0]、[0,1]、[0,2]、[1,1]、[1,2]、[2,2]、1:[1,0]、2:[2,0]、-1:[2,1]}

如前所述,您所要求的格式不是有效的python,因为它包含没有键的条目,但我相信以下内容对您有用:

值列表=[[0,0]、[0,1]、[0,2]、[1,0]、[1,1]、[1,2]、[2,0]、[2,1]、[2,2]] 键列表=[0,0,0,1,0,0,2,-1,0] 我的字典={} 对于值,请输入zipvalues\u列表、keys\u列表: 如果输入my_dict: my_dict[key]。追加值 其他: 我的dict[键]=[值] 打印我的字典
它将输出:{0:[[0,0,0,1],[0,2],[1,1],[1,2],[0,1],[0,2],[1,1],[1,2],[1,2],[1,0],[2,0],-1:[[2,0]}

假设您想得到“[0,0],[0,1],[0,2]”形式作为值,这是不可能的

您应该使用列表或元组覆盖[0,0]、[0,1]、[0,2]

列表->[[0,0],[0,1],[0,2]] 元组->[0,0],[0,1],[0,2]

但是,你仍然想保持这种状态,你可以把它变成str。 ->我不推荐。因为如果您不想使用defaultdict,将很难解析它,您可以自己实现与defaultdict提供的类似的功能: 不要直接从zip创建字典,而是迭代它并调用默认值为空列表[]的dict.get方法,并遵循逻辑

我的字典 对于键,zipkeys_列表中的值,值列表: my_dict.update{key:my_dict.getkey,[]+[value]} 输出:

{0: [[0, 0], [0, 1], [0, 2], [1, 1], [1, 2], [2, 2]], 1: [[1, 0]], 2: [[2, 0]], -1: [[2, 1]]}
输出中的所有值都将具有嵌套列表,如果您只想为具有多个值的键创建嵌套列表,则可以首先检查该键是否存在。

您所需的输出无效。python我想为一个键的值创建一个具有多个值的字典。没有这样的事情。但是正如您已经观察到的,字典值可以是一个列表,并且一个列表可以有多个元素。不幸的是,没有灵活的方法来构建这个结构-有一些像defaultdict这样的助手,但从根本上说,您仍然需要迭代并将元素附加到值列表中。这是否回答了您的问题?您应该查看树/图。@不要接受不,我无法理解我的问题。此代码在执行时出错。哎呀,我的错误,现在不应该出错。可能是我的解释有问题。但基本上我需要一个特定键的值的多个值的列表。准确地说,是键“0”
values_list = [[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
keys_list = [0,0,0,1,0,0,2,-1,0]
my_dict = dict(zip(keys_list, values_list))
print(my_dict)