1

私はこのような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. 指示詞-代名詞形容詞動詞動詞など

Pythonでこれを行うためのより速い方法、またはこれを行うためのより速い方法はありますか?このリストはハードコーディングされていますが、実際には任意の数の要素とサブ要素が含まれている可能性があります

ありがとう!

4

1 に答える 1

6

基本的に、ネストされたループitertools.productの束を作成するために使用します。for

import itertools

items = [...]

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

これにより、1680 のすべての組み合わせが得られます。

コメントから: 「アイテムを map(set, items) に置き換えると、重複が削除されます。これにより、カウントが 120 に減少します。」

于 2013-02-26T06:47:16.723 に答える