如何将两个数组合并在一起,连接相应的元素?

时间:2015-10-03 23:15:22

标签: python python-3.4

a = [1,2,3]
b = [4,5,6]

我不是要问像c = a+b之类的数组的轻松合并(会产生[1,2,3,4,5,6]

我正在寻找的是加入两个数组的内容,以便最终结果如下所示(先前给出ab)。

c = what-do-I-write-here? # [14,25,36]

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:0)

您可以使用zip来匹配相应的元素,从那里只需要将它们转换为字符串并加入它们:

a = [1,2,3]
b = [4,5,6]
c = [''.join(str(s) for s in x) for x in zip(a, b)]

答案 1 :(得分:0)

简介

您可以zip将两个列表组合在一起,形成一个包含双元素元组(对)的新列表,其中每对包含相应索引处的元素,来自这两个清单。

Python 3.5.0 (default, Sep 20 2015, 11:28:25)
[GCC 5.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> list (zip (a,b))
[(1, 4), (2, 5), (3, 6)]

这反过来又可以很容易地迭代每一对,并创建一个包含所需内容的新列表。

示例实施

在你的问题中,你写的结果应该是[14,25,36] - 意味着你想要以字面顺序连接元素,但结果仍然是 ints

您可以使用像

这样的代码轻松解决问题
a = [1, 2, 3]
b = [4, 5, 6]
c = [ int(''.join (map (str, xs))) for xs in zip (a,b) ]
c is now [14, 25, 36]

答案 2 :(得分:0)

li = [int(str(t[0]) + str(t[1])) for t in list(zip(a,b)) ]

print(li)

[14, 25, 36]

答案 3 :(得分:0)

这是另一种可能性:

     name     | artist_id |    name
--------------+-----------+-------------
              |        10 |
 , THE        |         9 | The           -- remaining corner case
 Abba         |         7 | Abba
 bEatles, THE |         2 | tHe bEatles
 Beatles, THE |         1 | The Beatles
 The, THE     |         3 | The The
 Then         |         4 | Then
 Theodor      |         6 | Theodor
 X, THE       |         5 | The X
 ZZ TOP       |         8 | ZZ TOP
 <NULL>       |        11 | <NULL>

之后也可以完成int-casing:

[int(x) for x in map(operator.concat, str(a), str(b)) if x.isdigit()]