python - 如何遍历范围并在 Python 中随机打乱列表?

标签 python python-3.x python-2.7 list

给定一个列表 x = [1,0,0,1,1]我可以重复使用 random.shuffle(x) 来打乱这个列表,但是如果我尝试在 for 循环中执行此操作,列表不会随机播放。

例如:

x = [1,0,0,1,1]
k = []
for i in range(10):
     random.shuffle(x)
     k.append(x)
return x

基本上,k 包含相同的 x 未洗牌序列?有解决办法吗?

最佳答案

创建新的列表随机排序的一种 pythonic 方法是根本不在适当的位置洗牌。这是一种实现:

[random.sample(x, len(x)) for _ in range(10)]

解释

  • random.sample 创建一个新列表,而不是就地洗牌。
  • len(x) 是样本的大小。在这种情况下,我们希望输出与原始列表长度相同的列表。
  • 列表理解通常被认为是 pythonic 与显式 for 循环。

关于python - 如何遍历范围并在 Python 中随机打乱列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49039985/

相关文章:

Python 包含 Lion 上的文件?

python-3.x - 如何在 fritzconnect 中发送 call_action

python - 如何将 group by Keys 应用到相关组

python-3.x - 使用 Gensim 进行动态主题建模/哪个代码?

python-3.x - Jupyter 笔记本永远不会使用多重处理完成处理(Python 3)

python - ImportError : libgeos-3. 6.2.so:无法打开共享对象文件:没有这样的文件或目录

python - Pandas 数据透视表中的小计

Python 正则表达式 - 查找子字符串中的多个字符

python - 如何通过在 python xarray 中添加额外维度将一个数组拆分为多个数组?

python - sys.argv[0] 总是什么都不返回