如何打印2D列表,以便每个列表都在一个带空格的新行上,没有任何""要么 []

时间:2017-11-30 20:45:24

标签: python arrays list printing

我在视觉上吸引人的庄园中打印列表时遇到问题。 列表的一个例子是

[["-", "-", "-", "-"],["-", "-", "-", "-"],["-", "-", "-", "-"]] 

(赢得的字符必须相同),但我需要打印它而不使用除printrangelen,{{1 }},insertappend,我不能使用任何字典或地图,或导入任何库或使用任何列表推导。我反过来想要:

pop

我试过了:

- - - -
- - - - 
- - - - 

3 个答案:

答案 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)

输出:

- - - -  
- - - -  
- - - -  
- - - -  

[['-', '-', '-', '-'], ['-', '-', '-', '-'], ['-', '-', '-', '-'], ['-', '-', '-', '-']]