循环打印2列到1

时间:2013-10-17 10:35:59

标签: python list loops for-loop pretty-print

假设我有一个包含2列的数组。看起来像这样 column1 = [1,2,3,...,830] column2 = [a,b,c,...]

我希望以单列的打印形式输出,包括逐列的两列值。输出形式:column = [1,a,2,b ....]

我尝试使用此代码

dat0 = np.genfromtxt("\", delimiter = ',')
mu = dat0[:,0]
A = dat0[:,1]
print(mu,A)
R = np.arange(0,829,1)
l = len(mu)
K = np.zeros((l, 1))
txtfile = open("output_all.txt",'w')
for x in mu:
    i = 0
    K[i,0] = x
    dat0[i,1] = M
    txtfile.write(str(x))
    txtfile.write('\n')
    txtfile.write(str(M))
    txtfile.write('\n')
print K

2 个答案:

答案 0 :(得分:1)

我完全不了解您的代码,numpy的引用是否真的与您的问题相关?什么是M

如果您有两个相同长度的列表,则可以使用zip内置函数获取元素对。

A = [1, 2, 3]
B = ['a', 'b', 'c']

for a, b in zip(A, B):
    print(a)
    print(b)

这将打印

1
a
2
b
3
c

答案 1 :(得分:0)

我确信有更好的方法可以做到这一点,但有一种方法是

>>> a = numpy.array([[1,2,3], ['a','b','c'],['d','e','f']]) 
>>> new_a = []
>>> for column in range(0,a.shape[1]):           # a.shape[1] is the number of columns in a
...     for row in range(0,a.shape[1]):          # a.shape[0] is the number of rows in a
...             new_a.append(a[row][column])   
...
>>> numpy.array(new_a) 
array(['1', 'a', 'd', '2', 'b', 'e', '3', 'c', 'f'],
     dtype='|S1')