【问题标题】:Python how to merge multiple arrays from the same variable to only one arrayPython如何将同一变量中的多个数组合并为一个数组
【发布时间】:2021-07-22 11:14:01
【问题描述】:

假设我有一个名为 records 的变量,其中包含 3 个数组,当我绑定到 print 时

print(records)

输出是这样的:

records = [('foo', 'Melbourne, Australia'), ('bar', 'Jakarta, Indonesia')]
          [('john', 'Tokyo, Japan'), ('doe', 'KL, Malaysia')]
          [('foo', 'Ossining, NY'), ('doe', 'Vantaa, Findland')]

我可以像这样将这 3 个数组合并为一个吗?

records = [('foo', 'Melbourne, Australia'), ('bar', 'Jakarta, Indonesia'), 
          ('john', 'Tokyo, Japan'), ('doe', 'KL, Malaysia'), 
          ('chips', 'Ossining, NY'), ('cookies', 'Vantaa, Findland')]

【问题讨论】:

  • 那么,你是不是想说当你print(records) 你得到的输出是[('foo', 'Melbourne, Australia'), ('bar', 'Jakarta, Indonesia')] [('john', 'Tokyo, Japan'), ('doe', 'KL, Malaysia')] [('foo', 'Ossining, NY'), ('doe', 'Vantaa, Findland')]
  • @CoolCoder 是的,实际上它看起来像这样drive.google.com/file/d/1S5DhyMzvXGOEGpk0o-Sii0zALzZ9XcXs/view
  • 同样的问题here

标签: python arrays merge


【解决方案1】:

遍历列表:

records = [[('foo', 'Melbourne, Australia'), ('bar', 'Jakarta, Indonesia')],
          [('john', 'Tokyo, Japan'), ('doe', 'KL, Malaysia')],
          [('foo', 'Ossining, NY'), ('doe', 'Vantaa, Findland')]]
out = []
for rec in records:
    for r in rec:
        out.append(r)
print(out)
>>>[('foo', 'Melbourne, Australia'), ('bar', 'Jakarta, Indonesia'),
('john', 'Tokyo, Japan'), ('doe', 'KL, Malaysia'), 
('foo', 'Ossining, NY'), ('doe', 'Vantaa, Findland')]

【讨论】:

    【解决方案2】:

    正如@CoolCoder 提到的,如果您想要类似的输出,那么

    首先您应该将所有数组包装在父数组中并用逗号分隔它们

    然后应用以下 sn-p:

    newArr = []
    for i in records:
        for j in i:
            newArr.append(j)
    print(newArr)
     
    

    【讨论】:

      【解决方案3】:

      你提供的输出列表不正确应该是这样的

      x = [[('x'),('y')],[('x'),('y')]]
      

      为了解决您的问题,请使用列表理解并遍历您的列表。

      records = [[('foo', 'Melbourne, Australia'), ('bar', 'Jakarta, Indonesia')],
                [('john', 'Tokyo, Japan'), ('doe', 'KL, Malaysia')],
                [('foo', 'Ossining, NY'), ('doe', 'Vantaa, Findland')]]
      
      new = [tuples for ls in records for tuples in ls]
      

      输出

      [('foo', 'Melbourne, Australia'), ('bar', 'Jakarta, Indonesia'), ('john', 'Tokyo, Japan'), ('doe', 'KL, Malaysia'), ('foo', 'Ossining, NY'), ('doe', 'Vantaa, Findland')]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-04
        • 1970-01-01
        • 1970-01-01
        • 2015-11-11
        • 2017-01-11
        相关资源
        最近更新 更多