gpt4 book ai didi

Python列表不会在循环中洗牌

转载 作者:太空狗 更新时间:2023-10-29 21:17:52 27 4
gpt4 key购买 nike

我正在尝试通过迭代创建一个随机的键列表:

import random

keys = ['1', '2', '3', '4', '5']
random.shuffle(keys)
print keys

这很完美。但是,如果我把它放在一个循环中并捕获输出:

a = []
for x in range(10):
random.shuffle(keys)
a.append(keys)

我得到了 10 次相同的洗牌?!显然这里有些根本性的错误...提前致谢。

最佳答案

问题是您在原地打乱列表,然后将列表的引用 添加到组合列表中。因此,您最终会得到 10 次相同的列表结构。“根本性的变化”是必须先复制列表,然后再附加它。

这是通过列表理解实现相同结果的更“pythonic”的方式。

import randomdef shuffleACopy(x):        b = x[:] # make a copy of the keys        random.shuffle(b) # shuffle the copy        return b # return the copykeys = [1,2,3,4,5,6,7,8]a = [shuffleACopy(keys) for x in range(10)]print(a)

关于Python列表不会在循环中洗牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4794663/

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