我只想把第三个位置的列表中的元素拖到最后一个位置,这样前两个将始终保持不变 e、 g
list = ['a?','b','c','d','e']
进入
list = ['a?','b','d','e','c']
出于某种原因,这不起作用:
list = ['a?','b','c','d','e']
import random
random.shuffle(list[2:])
print list
你知道我做错了什么吗??
到目前为止,唯一对我有效的是(编辑):
lists = [['a?','b','c','d','e'],['1?','2','3','4','5','6','7']]
import random
for list in lists:
copy = list[2:]
random.shuffle(copy)
list[2:] = copy
print lists
我想这正是我需要的。
你要做的是:
这对最初的名单没有多大影响。试试这个:
您可以创建自己的shuffle函数,该函数允许您在可变序列中对切片进行shuffle。它处理切片副本的采样和重新分配回切片。必须传递
slice()
参数,而不是更熟悉的[2:]
符号。用法:
如果您想在不复制的情况下乱序,可以尝试编写自己的可变切片类,如下所示(这是一个粗略的实现草图,没有边界检查等):
然后将原始列表包装到其中并馈送到标准洗牌:
相关问题 更多 >
编程相关推荐