Python 调用打印的函数,避免换行
我有一个打印数组的函数:Python 调用打印的函数,避免换行,python,python-2.7,Python,Python 2.7,我有一个打印数组的函数: In [93]: printArr(arrs[0], Nrows, Ncols) # # # # # # # # # O O O O O O O O O 其中,在printArr函数中,我在该函数调用pythons print函数的末尾添加了一个逗号(,),以获得3列的输出 但是,如果我想对printArr进行多次调用,并将输出堆叠到列中,如下图所示,该怎么办 # # # O O O # # # # # # # # # #
In [93]:
printArr(arrs[0], Nrows, Ncols)
# # #
# # #
# # #
O O O
O O O
O O O
其中,在printArr函数中,我在该函数调用pythons print函数的末尾添加了一个逗号(,),以获得3列的输出
但是,如果我想对printArr进行多次调用,并将输出堆叠到列中,如下图所示,该怎么办
# # # O O O
# # # # # #
# # # # # #
O O O O O O
O O O O O O
O O O O O O
给printArr打了两个电话我就知道了
In [96]:
printArr(arrs[0], Nrows, Ncols)
print " "
printArr(arrs[1], Nrows, Ncols)
# # #
# # #
# # #
O O O
O O O
O O O
O O O
# # #
# # #
# # #
O O O
O O O
有没有办法做到这一点,或者我必须重做我的整个printArr函数
谢谢
编辑:
好的,这是我的printArr函数
它以一个三维Ndarray作为输入,我打算使用该函数以一种很好的方式打印该数组中的所有矩阵(例如,共有3列和3行)
再次感谢您可以创建一个行生成器,并在打印功能中使用它:
def printArrays(listOfArrays,cols):
splittedArrays = [[array[x:x+cols] for x in range(0,len(array),cols)] for array in listOfArrays]
c = list(zip(*splittedArrays))
c = ["".join([[" "+"".join(y)][0]for y in x]) for x in c]
print("\n".join([" ".join(array) for array in c]))
a =["a","b","c","a","b","c"]
b= ["x","y","z","x","y","z"]
printArrays([a,b],3)
printArrays([a,b],2)
def rows(arr):
for row in arr:
yield " ".join('#' if c == 1 else 'O' for c in row)
def printArr(arr):
print "\n".join(rows(arr))
from itertools import izip_longest
def print2Arr(arr1, cols1, arr2, cols2):
for row1, row2 in izip_longest(rows(arr1), rows(arr2)):
row1 = row1 or " " * (2 * cols1 - 1)
row2 = row2 or " " * (2 * cols2 - 1)
print row1 + " " + row2
示例:
>>> arr1 = [[1, 0, 0], [1, 1, 0]]
>>> arr2 = [[1, 0, 0], [1, 1, 0], [1, 0, 0]]
>>> printArr(arr1)
# O O
# # O
>>> print2Arr(arr1, 3, arr2, 3)
# O O # O O
# # O # # O
# O O
>>> print2Arr(arr2, 3, arr1, 3)
# O O # O O
# # O # # O
# O O
你必须重做你的功能。一旦光标下移到新行,就没有内置的方法返回并打印更多内容。(我将此作为评论而不是回答,因为“好的,我应该如何重做我的函数?”是一个我不想打开的蠕虫程序)向我们展示你函数的实现,以便我们可以帮助你编辑它以获得预期的输出。如果元素是字符串,那么它是一个Numpy NdarrayOutput将是错误的-它们得到
split
ted.c=['one','other','string'];printaries(c,3)
产生'o n e a n o s t r'。
>>> arr1 = [[1, 0, 0], [1, 1, 0]]
>>> arr2 = [[1, 0, 0], [1, 1, 0], [1, 0, 0]]
>>> printArr(arr1)
# O O
# # O
>>> print2Arr(arr1, 3, arr2, 3)
# O O # O O
# # O # # O
# O O
>>> print2Arr(arr2, 3, arr1, 3)
# O O # O O
# # O # # O
# O O