假設
board = [[1, 0, 0], [0, 2, 0], [0, 0, 0]]
我想要一個功能,以可讀的版本列印板子,就像
new_board = [['X', ' ', ' '], [' ', 'O', ' '], [' ', ' ', ' ']]
這種方法不會改變實際的電路板。它列印'X'for 1、'O'for2和空格 ( ' ') for 0。
uj5u.com熱心網友回復:
您可以使用翻譯字典和嵌套串列理解:
>>> symbols = {1: 'X', 2: 'O', 0: ' '}
>>> [[symbols[i] for i in row] for row in board]
[['X', ' ', ' '], [' ', 'O', ' '], [' ', ' ', ' ']]
請注意,您也可以像@jasonharper 提到的那樣使用字串而不是字典,但它僅適用于這種情況,其中鍵以0順序開頭:
>>> symbols = ' XO'
uj5u.com熱心網友回復:
或與map和__getitem__:
>>> symbols = ' XO'
>>> [list(map(symbols.__getitem__, x)) for x in board]
[['X', ' ', ' '], [' ', 'O', ' '], [' ', ' ', ' ']]
>>>
或嵌套map:
>>> list(map(lambda x: list(map(symbols.__getitem__, x)), board))
[['X', ' ', ' '], [' ', 'O', ' '], [' ', ' ', ' ']]
>>>
這也適用于字典:
symbols = {1: 'X', 2: 'O', 0: ' '}
uj5u.com熱心網友回復:
這是我為您制作的功能。
把板子和鑰匙放在函式里,它會為你列印出來:
board = [[1, 0, 0], [0, 2, 0], [0, 0, 0]]
key={0:" ",1:"X",2:"O"}
def printBoard(board,key,sep="|"):
for x in board:
for y in x:
print(sep,key[y],end="")
print(sep)
printBoard(board,key)
鍵保存每個值的字符,而 sep 值定義單元格被劃分的內容。這列印:
| X| | |
| | O| |
| | | |
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/310939.html
