我写了一个程序来做这个工作,但是它不是非常节奏曲,不是节奏曲,而且绝对不是美丽的。
程序必须以下列方式连接两个numpy数组:
例如,list0和list1是输入
list0 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list1 = [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
输出应该如下所示:
[0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 7, 6, 8, 7, 9, 8, 10, 9, 11]
所以基本上在输出的每一个偶数点上放进list0
数,在每个不均匀点上放进list1
数。
我对python相当陌生,所以我用C风格编写了它:
import numpy as np
list0 = np.arange(10)
list1 = np.arange(2,12)
new = []
cnt0 = 0
cnt1 = 0
for i in range(0,2*len(list0)):
if i % 2 == 0:
new.append(list0[cnt0])
cnt0 = cnt0 +1;
else:
new.append(list1[cnt1])
cnt1 = cnt1 +1;
现在我想知道是否有一种更花哨的,更快的方式来达到同样的目标?
发布于 2017-04-20 12:46:44
发布于 2017-04-20 12:48:34
有迭代工具的一个不错的班轮
from itertools import chain
chain(*zip(list0, list1))
[0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 7, 6, 8, 7, 9, 8, 10, 9, 11]
发布于 2017-04-20 12:49:14
您可以使用zip
>>> output = [ data for elem in zip(list0,list1) for data in elem ]
[0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 7, 6, 8, 7, 9, 8, 10, 9, 11]
https://stackoverflow.com/questions/43519906
复制相似问题