【问题标题】:Having problems with python's random.shufflepython的random.shuffle有问题
【发布时间】:2023-04-04 12:15:01
【问题描述】:

我想制作一个矩阵,其线是以下向量的不同排列=
[1,2,3,4,5,10,10,10,10,10]
我尝试使用 random.shuffle 函数,但似乎每次我使用它时,它都会重新定义分配给它的所有对象。例如,我尝试了以下方法:

vec=[1,2,3,4,5]  
for i in range(5):  
    vec.append(10)  
Matpreferences=[]  
for i in range(10):  
    random.shuffle(vec)  
    Matpreferences.append(vec)  

然后我得到一个所有行都相等的矩阵。
例如:

[0, 0, 1.0, 0, 2.0, 3.0, 0, 0.5, 2.5, 1.5, 0]    
[0, 0, 1.0, 0, 2.0, 3.0, 0, 0.5, 2.5, 1.5, 0]  
[0, 0, 1.0, 0, 2.0, 3.0, 0, 0.5, 2.5, 1.5, 0]  
[0, 0, 1.0, 0, 2.0, 3.0, 0, 0.5, 2.5, 1.5, 0]    
...

我什至尝试过类似的东西

Matpreferences=[]  
    for i in range(10):  
    random.shuffle(vec)
    a=vec
    Matpreferences.append(a)   

但它会产生相同的结果。有什么简单的方法可以解决这个问题吗?
非常感谢您提供的任何帮助 =)

【问题讨论】:

  • 非常感谢大家,所有的答案都很棒。我不精通计算机科学,所以我不知道设置 v=vec 或 v=vec[:] 会有所不同

标签:
python
matrix
random
permutation
shuffle