python - 调用打印功能,避免换行

标签 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 
# # #    # # #
# # #    # # #
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 函数

def printArr(arr, Nrows, Ncols):
    for row in range(0, Nrows):
        for col in range(0, Ncols):
            if arr[row][col] == 1:
                print '#',
            else:
                print 'O',
        print " "

它需要一个 3 维 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)

关于python - 调用打印功能,避免换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29279269/

相关文章:

python - 使用用户输入搜索并替换 .txt 文件中的字符串

python - numpy:二维矩阵的行乘积

python - 初始化一个列表并找到该列表的平均值

python - 如何在 Python 中解析 DST 日期?

python - 在不加载 CSV 的情况下将标题添加到 CSV

python - 大收件箱 : Too many arguments for command 上的 imaplib.select

python - 将字符串列表转换为元组

windows - (Python wave 模块)不能在不影响播放速度的情况下改变音频采样率

python - 如何从通过命令行传递的文件访问变量

python - "Error: setting an array element with a sequence"