|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在编写代码时我用以下方法编写的随机二维列表里的产生一维列表全是相同的,这是为什么?
import random
# 创建随机数列表
matrix = []
a = [0]*88
for i in range(88):
for j in range(88):
a[i] = random.randint(0, 1024)
matrix[i].append(a)
print(matrix)
# 匹配用户输入数据
numbers = int(input("请输入一个数:"))
for i in range(88):
for j in range(88):
if numbers == matrix[i][j]:
print(i,j)
问题分析:
在你的代码中,二维列表 matrix 中的每个元素都指向相同的一维列表 a。这意味着当你修改一个 a 元素时,所有 matrix 列表中的对应位置都会被修改。因此,在你的代码中,每个子列表都包含了相同的一维列表,导致它们的值都相同。
修改后的代码如下:
- import random
- # 创建随机数列表
- matrix = []
- for i in range(88):
- a = [random.randint(0, 1024) for j in range(88)]
- matrix.append(a)
- print(matrix)
- # 匹配用户输入数据
- numbers = int(input("请输入一个数:"))
- for i in range(88):
- for j in range(88):
- if numbers == matrix[i][j]:
- print(i, j)
复制代码
代码解释:
1. 在循环生成二维列表 matrix 的时候,每次要重新创建一个新的一维列表 a,而不是多次使用相同的 a。
2. 使用列表推导式创建一维列表 a,以避免在循环中手动添加元素。
这样,你就可以得到一个正确的二维列表,每个子列表都包含随机生成的不同一维列表中的随机整数。
希望这个回答能够帮助到你!如果还有其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!  
|
|