a = [1,2,3]
b = [4,5,6]
我不是要问像c = a+b
之类的数组的轻松合并(会产生[1,2,3,4,5,6]
。
我正在寻找的是加入两个数组的内容,以便最终结果如下所示(先前给出a
和b
)。
c = what-do-I-write-here? # [14,25,36]
我该如何解决这个问题?
答案 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()]