用包含随机数的其他列表填充列表。

2024-10-03 13:26:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用nxn大小的列表打印一种2d数组。我遇到的问题是列表变成了最后一组随机数

例如,如果第一组数字是[1,5,7],那么metaList变为[[1,5,7],1,2]。但是,如果第二组数字是[3,4,5],那么meta list将更改为[[3,4,5],[3,4,5],2]最后的列表是三个相同的列表,但我希望它们是不同的

如果这件事很简单,我很抱歉。提前感谢您的帮助。这是密码

import random
n = 3

def aBuilder():
    metaList = range(n)
    tempList = range(n)
    for x in range(n):
        metaList[x] = tempList
        print metaList
        for y in range (n):
            tempList[y] = random.randint(1,9)
            print tempList[y]
    return metaList

def printList(List):
    for x in range(n):
        print List[x]

printList(aBuilder())

Tags: in列表fordefrange数字random数组
1条回答
网友
1楼 · 发布于 2024-10-03 13:26:02

问题是metaList只保存对tempList的引用,因此当tempList更改时,metaList中的项也会更改。解决办法是换线

metaList[x] = tempList

metaList[x] = tempList[:]

为了复制tempList每个赋值。 您的问题的更简单解决方案可能如下所示:

import random
def randlists(n, start, to):
    return [[random.randint(start,to) for i in range(n)] for i in range(n)]

print(randlists(3,1,9))

相关问题 更多 >