Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不更改原始列表的情况下,为每个等于零的列表元素打印空白?_Python_List_Printing_Formatting_Time Complexity - Fatal编程技术网

Python 如何在不更改原始列表的情况下,为每个等于零的列表元素打印空白?

Python 如何在不更改原始列表的情况下,为每个等于零的列表元素打印空白?,python,list,printing,formatting,time-complexity,Python,List,Printing,Formatting,Time Complexity,所以我试着做一个数字的井字游戏,你输入数字,如果水平/垂直/对角线加起来是15,你就赢了 起初,我只是把零放在一个空列表中。 但最终,我会用大于零的数字替换零 我想用以下格式打印tic tac toe: 所以我用了这个密码- print(" 0 1 2 ") for row in range(self.size): print(" {0} {1} | {2} | {3} ".format(row, self.board[row][0],

所以我试着做一个数字的井字游戏,你输入数字,如果水平/垂直/对角线加起来是15,你就赢了

起初,我只是把零放在一个空列表中。 但最终,我会用大于零的数字替换零

我想用以下格式打印tic tac toe:

所以我用了这个密码-

print("    0   1   2 ")
        for row in range(self.size):
            print(" {0}  {1} | {2} | {3}  ".format(row, self.board[row][0], self.board[row][1], self.board[row][2]))
            if row < 2:
                print('   -----------')
我想打印列表中零的空白(不更改实际列表) 因此,如果列表中的元素大于0,则打印它,否则打印空白

解决这个问题的一个办法是:

print("    0   1   2 ")
            for row in range(self.size):
                print(" {0}  {1} | {2} | {3}  ".format(row, self.board[row][0] if self.board[row][0]> 0 else ' ', self.board[row][1] if self.board[row][1]> 0 else ' ', self.board[row][2] if self.board[row][2]> 0 else ' '))
                if row < 2:
                    print('   -----------')
打印(“0 1 2”)
对于范围内的行(自身大小):
打印(“{0}{1}{124;{2}}{124{3}”。格式(行,self.board[row][0]如果self.board[row][0]>0 else',self.board[row][1]如果self.board[row][1]>0 else',self board[row][2]如果self board[row][2]>0 else')
如果行<2:
打印('------------')
但在这种情况下,该行的字符数超过120个,这是不可接受的。 我也不想在另一个for循环中使用for循环,因为这只会增加复杂性和运行时间


我能做什么呢?

我试着涂鸦,它还不是pythonic,但输出看起来不错

board = [[0,0,2],[0,1,0],[0,7,0]]

print('    0   |   1   |   2')
print('---------------------')

rowCount = 0
for eachRow in board:
    temp = "  |  ".join(str(x) for x in eachRow)
    temp = temp.replace("0", " " )
    print(str(rowCount)  + ' |   ' + temp)
    print('---------------------')
    rowCount = rowCount + 1

您可以尝试使用列表理解来减少字符数,但不幸的是,这无助于降低复杂性。请记住,这只是一个例子

board = np.zeros((3,3))


print("    0   1   2 ")
for row in range(3):
    a = [board[row][i] if board[row][i] else "" for i in range(3)]
    print(" {0}  {1} | {2} | {3}  ".format(row, a[0], a[1], a[2] ))
    if row < 2:
        print('   -----------')
board=np.零((3,3))
打印(“0 1 2”)
对于范围(3)中的行:
a=[board[row][i]如果board[row][i]else“”表示范围(3)内的i
打印(“{0}{1}{124;{2}{124;{3}”。格式(行,a[0],a[1],a[2]))
如果行<2:
打印('------------')

此外,我去年还构建了一个TTT。如果你想看看代码-仅供参考-谢谢,这是可行的,但它仍然在另一个for循环中使用for循环,我不想增加这里的复杂性
board = [[0,0,2],[0,1,0],[0,7,0]]

print('    0   |   1   |   2')
print('---------------------')

rowCount = 0
for eachRow in board:
    temp = "  |  ".join(str(x) for x in eachRow)
    temp = temp.replace("0", " " )
    print(str(rowCount)  + ' |   ' + temp)
    print('---------------------')
    rowCount = rowCount + 1
board = np.zeros((3,3))


print("    0   1   2 ")
for row in range(3):
    a = [board[row][i] if board[row][i] else "" for i in range(3)]
    print(" {0}  {1} | {2} | {3}  ".format(row, a[0], a[1], a[2] ))
    if row < 2:
        print('   -----------')