如何在不打乱原始列表的情况下对复制的列表进行无序处理?

2024-10-01 00:23:59 发布

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

我使用的是python,我想把复制后的列表洗入一个txt文件(见下面的代码)。在

为什么shuffle函数也会随机化原始列表?我只在函数调用中使用副本。在

有什么想法吗?谢谢您!在

from random import shuffle

def shuffleList2txt(myList):
    shuffle(myList)

    f = open('randList.txt','w')
    f.write(str(liste))
    f.close()

    return(myList)


liste = [1,2,3,4,5,6,7,8,9,10]
copy = liste
shuffledList = shuffleList2txt(copy)

liste和shuffledList是一样的!为什么?liste应该是原始列表,shuffledList应该是shuffledList。。。。:)


Tags: 文件函数代码fromtxt列表副本random
1条回答
网友
1楼 · 发布于 2024-10-01 00:23:59

random.shuffle工作到位。当然,您可以在洗牌之前复制一份列表,但最好使用random.sample,方法是取一个示例。。。在整个列表中:

>>> l = [1,2,3,4]
>>> random.sample(l,len(l))
[3, 1, 2, 4]
>>> l
[1, 2, 3, 4]

因此,分配random.sample的结果将给您一个新的、经过无序处理的列表,而不会更改原始列表。在

相关问题 更多 >