[英]What's the result of a single print() function in python
我有一個 python 子列表和一個函數(用 . 替換 0)來打印這個子列表(是的,就像數獨)。 代碼如下。
grid = [[5,3,0,0,7,0,0,0,0], [6,0,0,1,9,5,0,0,0], [0,9,8,0,0,0,0,6,0], [8,0,0,0,6,0,0,0,3], [4,0,0,8,0,3,0,0,1], [7,0,0,0,2,0,0,0,6], [0,6,0,0,0,0,2,8,0], [0,0,0,4,1,9,0,0,5], [0,0,0,0,8,0,0,7,9]] def print_grid(): for row in grid: for column in row: if column == 0: print("." , end=" ") else: print(column , end=" ")
運行print_grid() 后,得到如下結果。 我想知道如何逐行打印它。 在此先感謝您的任何幫助。
3 . . 7 . . . . 6 . . 1 9 5 . . . . 9 8 . . . . 6 . 8 . . . 6 . . . 3 4 . . 8 . 3 . . 1 7 . . . 2 . . . 6 . 6 . . . . 2 8 . . . . 4 1 9 . . 5 . . . . 8 . . 7 9
在第二個 for 循環的末尾添加一個print()
:
grid = [[5,3,0,0,7,0,0,0,0],
[6,0,0,1,9,5,0,0,0],
[0,9,8,0,0,0,0,6,0],
[8,0,0,0,6,0,0,0,3],
[4,0,0,8,0,3,0,0,1],
[7,0,0,0,2,0,0,0,6],
[0,6,0,0,0,0,2,8,0],
[0,0,0,4,1,9,0,0,5],
[0,0,0,0,8,0,0,7,9]]
def print_grid():
for row in grid:
for column in row:
if column == 0:
print("." , end=" ")
else:
print(column , end=" ")
print()
print_grid()
這以更簡單的方式實現了您正在尋找的結果,“逐行”打印網格的每一行。 對於每一行,我們使用列表理解來生成行值的新列表,其中 0 替換為“。” 然后使用 splat 運算符 (*) 我們將此行作為參數傳遞,print 語句將在其間打印空格。
grid = [[5,3,0,0,7,0,0,0,0],
[6,0,0,1,9,5,0,0,0],
[0,9,8,0,0,0,0,6,0],
[8,0,0,0,6,0,0,0,3],
[4,0,0,8,0,3,0,0,1],
[7,0,0,0,2,0,0,0,6],
[0,6,0,0,0,0,2,8,0],
[0,0,0,4,1,9,0,0,5],
[0,0,0,0,8,0,0,7,9]]
for row in grid:
print(*["." if val == 0 else val for val in row])
Numpy
模塊非常適合這一點。 但也需要您的打印功能成為板卡修改功能。
grid = [[5,3,0,0,7,0,0,0,0],
[6,0,0,1,9,5,0,0,0],
[0,9,8,0,0,0,0,6,0],
[8,0,0,0,6,0,0,0,3],
[4,0,0,8,0,3,0,0,1],
[7,0,0,0,2,0,0,0,6],
[0,6,0,0,0,0,2,8,0],
[0,0,0,4,1,9,0,0,5],
[0,0,0,0,8,0,0,7,9]]
def change_grid():
for x in range(9):
for y in range(9):
if grid[x][y] == 0:
grid[x][y] = "."
change_grid()
print(np.matrix(grid))
您需要做的就是每次循環遍歷一行時更改一行。
def print_grid():
for row in grid:
print("")
for column in row:
if column == 0:
print("." , end=" ")
else:
print(column , end=" ")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.