gpt4 book ai didi

python - 为什么 python 在此处使用嵌套循环时会打印奇怪的结果?

转载 作者:行者123 更新时间:2023-12-04 02:28:37 24 4
gpt4 key购买 nike

我得到了一个字符串数组,我想将每个单独的字符串拆分成单独的字符,并将它们存储在一个单独的二维数组中。我写了以下代码:-

# The given array
grid = ['1112', '1912', '1892', '1234']

# Creating a new 2D array
mat = [[None]*len(grid)]*len(grid)
for i in range(0,len(grid)):
for j in range(0,len(grid)):
mat[i][j] = grid[i][j]
print(mat)

但这样做会在我的二维数组 mat 中产生奇怪的值。二维数组 mat 的每一行都打印为 ['1','2','3','4'] 但这应该只是最后一行的值。

如果有人能回答我的问题,我将不胜感激。

最佳答案

mat = [[None]*len(grid)]*len(grid)

此语句正在创建一个关系二维数组(矩阵),因此无论何时更新一行,它都会更新所有其他行。

你应该使用它来创建一个空的二维数组:

mat = [[None for i in len(grid)] for j in range(len(grid))]

正如@marc 评论的那样,您还可以在此处传递一个列表推导式作为 width = height

mat = [[None]*len(grid) for _ in range(len(grid))]

关于python - 为什么 python 在此处使用嵌套循环时会打印奇怪的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65681992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com