首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python混洗列表子列表的内容

Python混洗列表子列表的内容
EN

Stack Overflow用户
提问于 2018-01-11 18:49:47
回答 3查看 3.7K关注 0票数 0

我在python:l = [ [1,2,3], [4,5,6], [7,8,9] ]中有一个列表,我想对每个子列表进行混洗。我如何才能做到这一点?

请注意,在对子列表的内容进行混洗时,应保留子列表的顺序。这与之前的问题不同,例如this question,在这些问题中,顺序被打乱,内容被保留。

我尝试过以下几种方法:

代码语言:javascript
运行
复制
import random

x = [ [1,2,3], [4,5,6], [7,8,9] ]

random.shuffle(x) # This shuffles the order of the sublists,
                  # not the sublists themselves.

x = [ random.shuffle(sublist) for sublist in x ] # This returns None
                                                 # for each sublist.

print(x)    
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-01-11 18:51:53

你不需要在第四行加上"x =“。

代码:

代码语言:javascript
运行
复制
import random

x = [ [1,2,3], [4,5,6], [7,8,9] ]

random.shuffle(x) # This shuffles the order of the sublists,
                  # not the sublists themselves.

[ random.shuffle(sublist) for sublist in x ] # This returns None
                                                 # for each sublist.

print(x) 

根据评论中的建议,这里有一个更新的版本:

代码语言:javascript
运行
复制
import random
x = [ [1,2,3], [4,5,6], [7,8,9] ]
random.shuffle(x) 
for sublist in x:
    random.shuffle(sublist) 
print(x) 
票数 2
EN

Stack Overflow用户

发布于 2018-01-11 18:57:18

shuffle就地工作,不返回任何内容,因此使用:

代码语言:javascript
运行
复制
random.shuffle(x)
for i in x:
    random.shuffle(i)
print(x)
票数 1
EN

Stack Overflow用户

发布于 2018-01-11 19:39:33

您可以尝试另一个名为sample的函数,如下所示。我使用的是python 3.6。

从随机导入* x=sample(i,len(i))中获取i in x shuffle(x)

这很简单!虽然它很容易解决,但你可以尝试另一个函数。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48205282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档