Python:对列表进行排序

时间:2012-01-10 08:24:15

标签: python list random

我有一个包含嵌套列表的列表。这些嵌套列表是句子。我想随机化句子的顺序,但random.shuffle()方法不支持嵌套列表。

[['A', 'B'],['C','D'],['E','F']]

我只想重新排序句子(随机)而不是句子中的单词,我该如何实现?

2 个答案:

答案 0 :(得分:3)

shuffle对我来说很好。

>>>from random import shuffle
>>>l=[['a','b'],['c','d'],['e','f']]
>>>shuffle(l)
>>>l
[['c', 'd'], ['a', 'b'], ['e', 'f']]
>>>shuffle(l)
>>>l
[['c', 'd'], ['e', 'f'], ['a', 'b']]

答案 1 :(得分:0)

这可能会帮助您作为示例

import random
def deep_shuffle_iter(i):
    try:
        map(shuffle_iter, random.shuffle(i))
    except TypeError: pass

使用递归

进行洗牌

e.g。

>>> asd = [[0,1],[2,3],[4]]
>>> shuffle_iter(asd)
>>> asd
[[4], [2, 3], [0, 1]]