[英]How to print a space between each letter of a word in a list on a new line?
[英]How to print a 2D list so that each list is on a new line with a space, without any “” or []
我在以美觀的方式打印列表時遇到麻煩。 列表的一個示例是
[["-", "-", "-", "-"],["-", "-", "-", "-"],["-", "-", "-", "-"]]
(字符不一定全部相同),但是我需要打印它而不使用除了print
, range
, len
, insert
, append
, pop
之外的任何函數,並且我不能使用任何詞典或地圖,也不能導入任何庫或使用任何列表理解。 我又要:
- - - -
- - - -
- - - -
我試過了:
def print_board(board):
for i in board:
row = board[i]
for r in row:
print(*row[r], "\n")
您接近了,但您誤解了for i in <list>
工作方式。 迭代變量獲取列表元素,而不是其索引。
另外, row[r]
(如果r
是索引)將只是一個字符串,而不是列表,因此您無需使用*row[r]
對其進行解包。
無需在print()
調用中包含"\\n"
,因為默認情況下,它以換行符結束輸出-您必須使用end=""
選項覆蓋該輸出,以防止出現這種情況。
for row in board:
for col in row:
print(col, end=" ") # print each element separated by space
print() # Add newline
board = [["-", "-", "-", "-"],["-", "-", "-", "-"],["-", "-", "-", "-"]]
for row in board:
print(*row)
這是最簡單的方法,但是依賴於參數解壓縮( row
之前加*
)。 如果由於某種原因不能使用它,則可以使用關鍵字參數進行print
以達到相同的結果
for row in board:
for cell in row:
print(cell, end=' ')
print()
使用更好的命名變量可以更好地理解:
def print_board(board):
for innerList in board:
for elem in innerList:
print(elem + " ", end ='') # no \n after print
print("") # now \n
b = [["-"]*4]*4
print_board(b)
print(b)
輸出:
- - - -
- - - -
- - - -
- - - -
[['-', '-', '-', '-'], ['-', '-', '-', '-'], ['-', '-', '-', '-'], ['-', '-', '-', '-']]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.