我试图获取列表中的随机元素列表。像这样:
[['3','1','2','4'],
['2','1','3','4'],
['3','1','2','4'],
['4','1','3','2']]
每一行都应包含随机改组的1,2,3,4元素,所以我想重新洗几次。
我使用了以下[是的,可以循环播放,但希望更清楚]:
import random
p1=['1','2','3','4']
p=[]
random.shuffle(p1)
p.append(p1)
print p
random.shuffle(p1)
p.append(p1)
print p
random.shuffle(p1)
p.append(p1)
print p
random.shuffle(p1)
p.append(p1)
print p
但结果是这样的:
>>>
[['2', '4', '1', '3']]
[['3', '4', '1', '2'], ['3', '4', '1', '2']]
[['2', '4', '3', '1'], ['2', '4', '3', '1'], ['2', '4', '3', '1']]
[['1', '3', '4', '2'], ['1', '3', '4', '2'], ['1', '3', '4', '2'], ['1', '3', '4', '2']]
我做错了什么?如何以正确的方式完成这个简单的任务?
答案 0 :(得分:3)
您要附加您不断修改的相同 p1
对象。而是添加副本!即,改变每个
p.append(p1)
到
p.append(list(p1))