python - Python创建列表列表
问题描述
我想知道是否有更好的方法来创建一个列表列表,其中每个列表都是另一个列表的随机排列。这就是我编写的代码,假设 numpy.random 是 import as rd :
def shuffle(L):
i = rd.randint(0,len(L))
j = rd.randint(0,len(L))
L[i], L[j] = L[j], L[i]
return
list_base= [0,1,2,3]
list_of_list=[]
for k in range(4):
M = list_base
for i in range(5):
shuffle(M)
list_of_list.append(M[:])
解决方案
使用random.shuffle
?
import random
input_list = [0,1,2,3]
shuffled_lists = []
for x in range(4):
lst = input_list[:] # copy, since ...
random.shuffle(lst) # ... this modifies it in-place
shuffled_lists.append(lst)
print(shuffled_lists)
输出例如
[[1, 2, 3, 0], [2, 0, 3, 1], [0, 3, 1, 2], [3, 2, 0, 1]]
这并不能保证所有排列shuffled_lists
都是唯一的!
推荐阅读
- spring-boot - 错误:不兼容的 SockJS!主站使用:“1.4.0”,iframe:“1.0.0”
- javascript - 如何从服务器中选择随机用户?
- django - Django 是否在服务器端渲染 JS?
- reactjs - 将数据传递给子组件在反应中不起作用
- anylogic - Anylogic Z分数表
- arrays - 如何在本机反应中使用for循环一一获取数组对象
- javascript - 如果 url 不以 http 或 https 开头,如何替换 achor 标签中的 url?
- html - 如何停止背景位置使背景图像不那么清晰?
- regex - 正则表达式和 .htaccess:重定向 /cat1/cat2/ → /cat2/
- android - 如何在 ionic 3 android 应用程序中下载和获取离线磁贴?