【问题标题】:In python, append dictionary value with each element in array在python中,将字典值附加到数组中的每个元素
【发布时间】:2017-01-15 11:03:03
【问题描述】:

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

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

Array = [4,5,6]
dictionary {'index'} = [1,2,3]

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

dictionary['index'].append(array)

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

print range(len(dictionary['index'][0]))

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

print range(len(dictionary['index'][1]))

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

【问题讨论】:

  • 你的例子错了,dictionary {'index'} = [1,2,3] throws InvalidSyntax
  • 这个问题不太清楚。你能提供一个工作代码示例吗?看起来第二行应该是dictionary['index'] = [[1, 2, 3]](注意= 之前的方括号而不是大括号以及之后的额外一对方括号)。修复此问题后,您的示例不会显示您声称的行为(尝试一下!),因此您显然正在做其他事情。
  • 此外,您的dictionary['index'] 的第一个和第二个元素是整数,因此您无法获得它们的长度。也许你想写len(range(dictionary['index'][0]))
  • 我的猜测是您在将列表 Array (这是一个列表,而不是数组)附加到字典值之后对其进行了修改。追加时不会复制,因此以后对Array的修改会影响dict中的值。

标签: python arrays dictionary append


【解决方案1】:

如果您想将整个列表附加到现有列表,您可以使用extend()

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

输出:

{'index': [1, 2, 3, 4, 5, 6]}

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

d['index'] = [1,2,3]
d['index'] = [d['index']]
d['index'].append([4,5,6])

输出:

{'index': [[1, 2, 3], [4, 5, 6]]}

【讨论】:

  • 我认为 OP 实际上希望以 {'index': [[1, 2, 3], [4, 5, 6]]} 结尾。查看问题中的示例打印语句。
  • 感谢您的澄清。我对此进行了编辑。
猜你喜欢
  • 2018-05-27
  • 2019-02-25
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 2021-12-21
  • 2017-09-27
  • 2016-12-30
相关资源
最近更新 更多