我有两个数组,其中包含一些数字:
RA=['20 12 40.0319', '15 15 48.4459'...'10 57 3.0215']
DEC=['-02 08 39.97', '-37 09 16.03'...'+22 42 39.07']
我想把这些数组合并为一个数组,比如:
POS=['20 12 40.0319 -02 08 39.97','15 15 48.4459 -37 09 16.03','10 57 3.0215 +22 42 39.07']
所以基本上,我想在新数组的第i个元素处合并这两个元素的第i个元素,并在它们之间添加一个选项卡。我该怎么做?
zip()
函数返回一个zip对象,它是元组的迭代器,其中每个传递的迭代程序中的第一个项目配对在一起,然后每个传递的迭代程序中的第二个项目配对到一起等等。如果传递的迭代器具有不同的长度,则具有最少项的迭代者决定新迭代器的长度。
POS = [i+' '+k for i, k in zip(RA,DEC)]
使用zip
>>> POS = [(i + 't' + j) for (i,j) in zip(RA, DEC)]
>>> for i in POS:
print(i)
20 12 40.0319 -02 08 39.97
15 15 48.4459 -37 09 16.03
10 57 3.0215 +22 42 39.07
我可以想出两种方法将这些数组合并在一起,其中一种方法是使用其他人提供的+
运算符连接第I个元素。
或者,可以使用f字符串。
解决方案
def merge_arrays(arr1, arr2):
return [f"{i}t{j}" for i, j in zip(arr1, arr2)]
RA=['20 12 40.0319', '15 15 48.4459', '10 57 3.0215']
DEC=['-02 08 39.97', '-37 09 16.03', '+22 42 39.07']
print("n".join(merge_arrays(RA, DEC)))
输出
20 12 40.0319 -02 08 39.97
15 15 48.4459 -37 09 16.03
10 57 3.0215 +22 42 39.07