Python:对列表进行排序
我有一个包含嵌套列表的列表。这些嵌套列表是句子。我想随机化句子的顺序,但random.shuffle()
方法不支持嵌套列表。Python:对列表进行排序
[['A', 'B'],['C','D'],['E','F']]
我只想重新排列句子(随机)而不是句子中的单词,我该如何做到这一点?
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']]
SRY,我描述了我的问题错误...这是被我试图做的事: 进口NLTK >>>从nltk.corpus导入棕色 >>> TG = brown.tagged_sents >>> TG =棕色.tagged_sents(simplify_tags = True) >>> random.shuffle(tg) – user1091534 2012-01-10 12:47:42
我对这些模块并不熟悉。但是什么是'tg'?如果它是一个嵌套列表,那么不管之前的东西如何,它都应该正确地洗牌。 – 2012-01-10 13:12:32
这可以帮助你作为例如它不使用iters的洗牌递归
import random
def deep_shuffle_iter(i):
try:
map(shuffle_iter, random.shuffle(i))
except TypeError: pass
例如
>>> asd = [[0,1],[2,3],[4]]
>>> shuffle_iter(asd)
>>> asd
[[4], [2, 3], [0, 1]]
这不是一个代码工厂 - 你能解释一下你试过的吗? – simchona 2012-01-10 08:24:53
“,但random.shuffle()方法不支持嵌套列表。”它的确如此。是什么让你觉得它不? – Shawabawa 2012-01-10 12:30:02