【问题标题】:How to add a value to each part in an array如何为数组中的每个部分添加一个值
【发布时间】:2016-08-13 09:55:10
【问题描述】:

我需要为数组的每个部分添加不同的值。

array1 = [[1,2,3], [4,5,6], [7,8,9], [10,11,13]]
array2 = [["a"], ["b"], ["c"], ["d"]]

期望的输出:

array3 = [["a",1,2,3], ["b",4,5,6], ["c",7,8,9], ["d",10,11,13]]

第一个数组是通过 Beautiful Soup 抓取构建的,因此在被抓取之前它是未定义的。不确定这是否很重要,但一旦刮擦完成,以上是正确的尺寸。我一直在尝试使用 append,但我似乎无法让它工作。

【问题讨论】:

  • 这和dictionary有什么关系?
  • 我不是有意添加的。对不起。

标签: arrays python-3.x dictionary multidimensional-array append


【解决方案1】:

使用zip 并将子列表添加在一起:

array3 = [from_a2 + from_a1 
          for from_a2, from_a1 in zip(array2,array1)
         ]

请注意,如果您想将其设为 dict,则 zip 也可以在那里工作,因为构造函数可以采用 (key,value) iterables:

data = dict(zip(string.ascii_lowercase,array1))

>>> data
{'d': [10, 11, 13], 'b': [4, 5, 6], 'a': [1, 2, 3], 'c': [7, 8, 9]}

在这种情况下,我使用 string.ascii_lowercase 只是所有字母,直到 array1 完成,尽管如果 len(array1)>26 会失败,在这种情况下你需要使用带有更多标签的东西。

【讨论】:

  • 这行得通!我以前从未使用过 zip,现在它是我的朋友。非常感谢。
  • 请注意,如果 zip 具有不同的长度,它们将在最短的可迭代处停止,因此如果所有标签都是这样,您可以使用 string.ascii_lowercase 实现类似的版本。
猜你喜欢
  • 2019-09-07
  • 2014-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-06
  • 1970-01-01
相关资源
最近更新 更多