我在Python中有一个对象列表,我想要将它们混洗.我以为我可以使用该random.shuffle方法,但当列表是对象时,这似乎失败了.是否有一种方法可以改变对象或其他方式?
import random
class A:
foo = "bar"
a1 = a()
a2 = a()
b = [a1, a2]
print(random.shuffle(b))
Run Code Online (Sandbox Code Playgroud)
这将失败.
使用python对数组进行洗牌的最简单方法是什么?
我有一个列表,我用随机的shuffle函数(random.shuffle)
但是,Python参考说明:
注意,即使相当小
len(x),x的排列总数也大于大多数随机数生成器的周期; 这意味着永远不会产生长序列的大多数排列.
现在,我想知道这个"相当小的len(x)"意味着什么.100,1000,10000,......
我想要改组一个数组,但我找到的只是方法random.shuffle(x),从最好的方式来随机化Python中的字符串列表
我能做点什么吗
import random
rectangle = [(0,0),(0,1),(1,1),(1,0)]
# I want something like
# disorderd_rectangle = rectangle.shuffle
Run Code Online (Sandbox Code Playgroud)
现在我只能逃脱
disorderd_rectangle = rectangle
random.shuffle(disorderd_rectangle)
print(disorderd_rectangle)
print(rectangle)
Run Code Online (Sandbox Code Playgroud)
但它回来了
[(1, 1), (1, 0), (0, 1), (0, 0)]
[(1, 1), (1, 0), (0, 1), (0, 0)]
Run Code Online (Sandbox Code Playgroud)
所以original array也改变了.如何在array不改变原始状态的情况下创建另一个洗牌?