我的代码是这个。我想在10-99范围之间添加随机数。而当代码运行时,就会出现这样的问题。所有四行都变为相同。我也尝试用input
给出数字,但是这次结果也是一样。只有前四个给定的整数才占用全部四行。
import random
mx = [[0]*4] * 4
for i in range(4):
for j in range(4):
num = random.randint(10,99)
mx[i][j] = num
#printing
for i in range(4):
for j in range(4):
print(mx[i][j],sep=" ",end=" ")
print()
这带来了这个问题
C:\Users\Username\Desktop>python file.py
89 98 99 67
89 98 99 67
89 98 99 67
89 98 99 67
源代码有什么问题?
答案 0 :(得分:1)
目标是仅提供4x4阵列还是演示? 数组可以通过这样的列表理解来实现:
[print([random.randint(10,99) for x in range(4)]) for y in range(4)]
输出:
[15, 57, 37, 90]
[40, 58, 39, 67]
[97, 38, 84, 86]
[14, 72, 50, 13]
答案 1 :(得分:0)
mx = [[0]*4] * 4
将仅复制同一列表4次。它不会像您打算的那样创建4个单独的列表。您可以尝试使用下面的代码,在列表中创建单个列表。
mx = [None] * 4
for i in range(4):
mx[i] = [None] * 4
for j in range(5):
num = random.randint(10,99)
mx[i][j] = num