2016-09-15 30 views
0

预先感谢。 我目前正在尝试从另一个程序作为输入需要的格式获取数组中的某些值。我正在遍历i行和j列,因为我需要直接在数组[i,j]的后面跟随i的值(如果非零和i不同于j),则直接在同一行上打印每个值第一个维度。我还需要跳到下一行,以获取i的新值。我用普通的跳线“\ n”实现了它,但是它留下了一个空行,我需要将下一行直接放在之前没有空行的位置。我知道我可以很容易地解决这个问题,但我想知道一种方法来做到这一点在python中。如何在一系列的潜水员打印之后直接打印另一份打印,但不在python 2中留下空格?

这就是我想和结果:

import numpy as np 
z=np.arange(100).reshape(10,10) 
z[5,4]=0 
print z 
for i in xrange(1,10,1): 
for j in xrange(1,10,1): 
    if not (i==j): 
     if not z[i,j]==0: 
      print j, z[i,j], 
print "\n" 

[[ 0 1 2 3 4 5 6 7 8 9] 
[10 11 12 13 14 15 16 17 18 19] 
[20 21 22 23 24 25 26 27 28 29] 
[30 31 32 33 34 35 36 37 38 39] 
[40 41 42 43 44 45 46 47 48 49] 
[50 51 52 53 0 55 56 57 58 59] 
[60 61 62 63 64 65 66 67 68 69] 
[70 71 72 73 74 75 76 77 78 79] 
[80 81 82 83 84 85 86 87 88 89] 
[90 91 92 93 94 95 96 97 98 99]] 

2 12 3 13 4 14 5 15 6 16 7 17 8 18 9 19 

1 21 3 23 4 24 5 25 6 26 7 27 8 28 9 29 

1 31 2 32 4 34 5 35 6 36 7 37 8 38 9 39 

1 41 2 42 3 43 5 45 6 46 7 47 8 48 9 49 

1 51 2 52 3 53 6 56 7 57 8 58 9 59 

1 61 2 62 3 63 4 64 5 65 7 67 8 68 9 69 

1 71 2 72 3 73 4 74 5 75 6 76 8 78 9 79 

1 81 2 82 3 83 4 84 5 85 6 86 7 87 9 89 

1 91 2 92 3 93 4 94 5 95 6 96 7 97 8 98 

回答

0

自动打印通话在它打印什么末尾添加一个换行符。您可以通过在结尾处添加逗号来抑制换行,就像您所做的一样。但是,在循环结束时致电print '\n',您将添加两条换行符,因为print会在'\ n'的末尾添加换行符。以逗号结尾打印语句或打印空字符串,或者将工作:

import numpy as np 
z=np.arange(100).reshape(10,10) 
z[5,4]=0 
print z 
for i in xrange(1,10,1): 
    for j in xrange(1,10,1): 
     if not (i==j): 
      if not z[i,j]==0: 
       print j, z[i,j], 
    print "" # automatically adds newline to end of empty string. 
    # print "\n", # <---- could use this alternatively. Note the comma at the end 
+0

感谢很多gowrath。不知道这个伎俩。 –