形式在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']]
我想形成从这些列表就像所有可能的字符串:
- 示范代词动词动词动词
- 示范代词形容动词动词 等
有没有更快的方法来做到这一点或任何快速的方式吗?此列表是硬编码的,但它实际上可能包含任何数量的元素和子元素
谢谢!
答
使用itertools.product
基本上做了一堆嵌套for
循环:
import itertools
items = [...]
for grouping in itertools.product(*items):
print ' '.join(grouping)
这会给你所有1680种组合。
来自评论:“你可以用map(set,items)替换项目,它会删除重复项,这会将count数降低到120。
谢谢!正是我在找什么。我现在可能需要一些东西来减少这个列表大小。这个数字对于这么小的名单来说太多了。但这是另一个问题的一部分,我想;)非常感谢! – 2013-02-26 06:51:35
@AkshatGoel:你可以用'map(set,items)'替换'items',它会删除重复项。这将计数降至120. – Blender 2013-02-26 06:52:38
谢谢! :)我会添加该部分来回答自己:) – 2013-02-26 06:53:19