形式在2名列表

问题描述:

所有可能的字符串我有两个级别列表如下:形式在2名列表

[['Demonstrative-Pronoun', 'Personal-Pronoun', 'Adjective', 'Noun', 'Noun', 'Indefinite-Pronouns'], ['Verb', 'Adjective', 'Adverb', 'Noun', 'Noun'], ['Verb', 'Verb', 'Verb', 'Verb', 'Adjective', 'Noun', 'Noun', 'Verb'], ['Verb', 'Verb', 'Verb', 'Verb', 'Verb', 'Verb', 'Noun']] 

我想形成从这些列表就像所有可能的字符串:

  1. 示范代词动词动词动词
  2. 示范代词形容动词动词 等

有没有更快的方法来做到这一点或任何快速的方式吗?此列表是硬编码的,但它实际上可能包含任何数量的元素和子元素

谢谢!

使用itertools.product基本上做了一堆嵌套for循环:

import itertools 

items = [...] 

for grouping in itertools.product(*items): 
    print ' '.join(grouping) 

这会给你所有1680种组合。

来自评论:“你可以用map(set,items)替换项目,它会删除重复项,这会将count数降低到120。

+0

谢谢!正是我在找什么。我现在可能需要一些东西来减少这个列表大小。这个数字对于这么小的名单来说太多了。但这是另一个问题的一部分,我想;)非常感谢! – 2013-02-26 06:51:35

+1

@AkshatGoel:你可以用'map(set,items)'替换'items',它会删除重复项。这将计数降至120. – Blender 2013-02-26 06:52:38

+0

谢谢! :)我会添加该部分来回答自己:) – 2013-02-26 06:53:19