Python - 仅随机播放列表的某些元素

标签 python list random elements shuffle

我试图仅将列表中的元素从第 3 位打乱到最后一个位置,以便第 1 和第 2 位始终保持原位 例如

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

认为这正是我所需要的。

最佳答案

你做的是这样的:

copy = list[2:]
random.shuffle(copy)    

这对原始列表没有多大作用。试试这个:

copy = list[2:]
random.shuffle(copy)
list[2:] = copy # overwrite the original

关于Python - 仅随机播放列表的某些元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9557182/

相关文章:

python - 当列包含 `==` 而不是 `List` 时, Pandas 比较运算符 `Tuple` 无法按预期工作

python - Pandas random_state 究竟做了什么?

android - 当我使用 python 在 appium 中运行测试时,如何防止每次重新安装应用程序

python - 如何在 Python 中导入 r 包

Python,对象获取新值

list - Erlang 列出了超过 8 的单个数字?

list - Prolog:从列表中随机选择规则并传递参数

java - 随机不排除我的号码

JavaScript - 从目录中选择一个随机页面

python - 如何将csv文件写入特定文件夹