更改嵌套列表中的一个元素

时间:2015-04-06 23:29:24

标签: python-3.x

我有这个代码来制作游戏板并更改其中一个元素

def firstBoard():
    rows = int(input("Please enter the number of rows: "))
    col = int(input("Please enter the number of columns: "))
    myList = [[0]*col]*rows
    return myList
def getInput(myList):
    rows = int(input("Enter the row or 'q': "))
    col = int(input("enter the column: "))
    myList[rows-1][col-1] = "X"
    return myList

def printBoard(myList):
    for n in myList:
        for s in n:
            print(s, end= " ")
        print()
def main():
    myList = firstBoard()
    myList = getInput(myList)
    print(printBoard(myList))
main()

我想要游戏板的输出:

Please enter the number of rows: 5
Please enter the number of columns: 5
Enter the row or 'q': 1
Enter the column: 1

X 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

但我得到了:

X 0 0 0 0 
X 0 0 0 0 
X 0 0 0 0
X 0 0 0 0 
X 0 0 0 0
None

任何想法如何解决这个问题并摆脱底部的"无#34;。

1 个答案:

答案 0 :(得分:0)

发表评论作为答案......

在第四行中改为:

myList = [[0]*col for i in range(rows)]

您看到的行为是由于您在每行上创建相同的列表。

由于您已经有printBoard(...)打印电路板的代码,请删除对print()的最终调用,例如:main()中的最后一行应该只是:

printBoard(myList)