在python中,将字典值附加到数组中的每个元素

Joe*_*ger 0 python arrays dictionary append

您好,非常感谢您的帮助!

我确信这是一个愚蠢的问题,但我正在尝试用数组中的元素附加一个字典值。现在我只能让它将整个元素数组作为一个条目而不是单独的值加载。对不起,如果我没有很好地解释这一点。下面是一个例子:

Array = [4,5,6]
dictionary {'index'} = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

这是我正在做的事情,这是错误的

dictionary['index'].append(array)
Run Code Online (Sandbox Code Playgroud)

这是错误的,因为如果我查询字典 ['index'][1] 中有多少个元素,它会返回 1 而不是 3。看这里:

print range(len(dictionary['index'][0]))
Run Code Online (Sandbox Code Playgroud)

答案是 3,即 1 2 和 3。但是!

print range(len(dictionary['index'][1]))
Run Code Online (Sandbox Code Playgroud)

答案是 1, [4,5,6]。我一定是错误地加载了数组。有谁知道我做错了什么?谢谢!

den*_*aar 7

如果要将整个列表附加到现有列表,只需使用extend():

a = [4,5,6]
d = {'index': [1,2,3]}
d['index'].extend(a)
Run Code Online (Sandbox Code Playgroud)

输出:

{'index': [1, 2, 3, 4, 5, 6]}
Run Code Online (Sandbox Code Playgroud)

如果您想最终得到一个包含两个列表 [1,2,3] 和 [4,5,6] 的列表,那么您应该考虑最初创建字典值的方式。你可以做:

d['index'] = [1,2,3]
d['index'] = [d['index']]
d['index'].append([4,5,6])
Run Code Online (Sandbox Code Playgroud)

输出:

{'index': [[1, 2, 3], [4, 5, 6]]}
Run Code Online (Sandbox Code Playgroud)