我想迭代地洗牌4个元素的列表,然后将混洗列表附加到不断增长的列表中。结果将是一个长4个元素的倍数的列表,每四个元素都是我原始列表的一些组合。迭代在python中生长一个洗牌列表
我的代码是
import random
list1 = ['X','Y','Z','Q']
list2 = []
for drop in range(0,72/4):
random.shuffle(list1)
list2.append(list1)
,我似乎已经是列表2将列表1的相同的改组型式一遍又一遍的问题。 ['Q','X',Z','Y','Q','X',Z','Y','Q','X','Z','''',''',''''''''''''''''''''''''''''''''''''''''' Y”,...]
是否有原因为什么list2.append(list1)一遍又一遍地添加相同的实例?我的逻辑是,在每个循环中,list1将被重新排列。 – 2012-04-13 18:30:06
首先,请注意,使用'list2.append(list1)'您不要将list1的元素添加到list2。您将list1本身添加到list2(['X','Y','Z','Q']与[['X','Y','Z','Q']])。由于没有制作list1的副本,因此'random.shuffle(list1)'会更改list2中list1的所有出现。 – user1202136 2012-04-13 18:39:26