我在视觉上吸引人的庄园中打印列表时遇到问题。 列表的一个例子是
[["-", "-", "-", "-"],["-", "-", "-", "-"],["-", "-", "-", "-"]]
(赢得的字符必须相同),但我需要打印它而不使用除print
,range
,len
,{{1 }},insert
,append
,我不能使用任何字典或地图,或导入任何库或使用任何列表推导。我反过来想要:
pop
我试过了:
- - - -
- - - -
- - - -
答案 0 :(得分:2)
您已经关闭,但您误解了for i in <list>
的工作原理。迭代变量获取列表元素,而不是它们的索引。
此外,row[r]
(如果r
是索引)只是一个字符串,而不是列表,因此您不需要使用*row[r]
解压缩它。
没有必要在"\n"
调用中包含print()
,因为它默认使用换行符结束输出 - 您必须使用{{1}覆盖它}选项来防止它。
end=""
答案 1 :(得分:1)
board = [["-", "-", "-", "-"],["-", "-", "-", "-"],["-", "-", "-", "-"]]
for row in board:
print(*row)
这是最简单的方法,但依赖于参数解包(在*
之前row
星)。如果由于某种原因无法使用它,那么您可以使用print
的关键字参数来实现相同的结果
for row in board:
for cell in row:
print(cell, end=' ')
print()
答案 2 :(得分:0)
使用更好的命名变量,这可以更好地理解:
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)
输出:
- - - -
- - - -
- - - -
- - - -
[['-', '-', '-', '-'], ['-', '-', '-', '-'], ['-', '-', '-', '-'], ['-', '-', '-', '-']]