0

私はリストを持っています

[
 [[[u'ANC'], [u'DEN', u'SFO'], [u'CHI', u'CLE', u'DEN', u'EWR', u'HOU', u'WAS'], [u'GSP']]], 
 [[[u'ANC'], [u'PDX', u'SEA'], [u'CHI', u'CLE', u'DEN', u'EWR', u'HOU', u'LAX', u'SFO', u'WAS'], [u'GSP']]]
]

リストはこのテキストから既に作成されています

ANC-DEN/SFO-CHI/CLE/DEN/EWR/HOU/WAS-GSP
ANC-PDX/SEA-CHI/CLE/DEN/EWR/HOU/LAX/SFO/WAS-GSP

そのリストを使用して実行できるすべてのバリアントを取得する必要があります。

ANC-SFO-EWR-GSP
ANC-SFO-CHI-GSP
ANC-SFO-CLE-GSP
ANC-DEN-EWR-GSP
ANC-PDX-EWR-GSP
ANC-SFO-HOU-GSP
ANC-SEA-LAX-GSP
ANC-SEA-EWR-GSP
ANC-SFO-ORD-GSP
ANC-PDX-LAX-GSP
ANC-PDX-CHI-GSP
ANC-DEN-CHI-GSP
ANC-SEA-SFO-GSP
ANC-PDX-SFO-GSP
ANC-SEA-CHI-GSP
ANC-SFO-DEN-GSP
ANC-PDX-HOU-GSP
ANC-SEA-HOU-GSP
ANC-DEN-HOU-GSP
ANC-DEN-CLE-GSP
ANC-PDX-CLE-GSP
ANC-SEA-CLE-GSP
ANC-DEN-ORD-GSP
ANC-PDX-ORD-GSP
ANC-PDX-DEN-GSP
ANC-SEA-DEN-GSP
ANC-SEA-ORD-GSP

どうすればこれを行うことができますか?

4

1 に答える 1

7

リストを使用itertools.productして引数に展開します。

>>> import itertools
>>> test = [['a'], ['b', 'c'], ['d']]
>>> list(itertools.product(*test))
    [('a', 'b', 'd'), ('a', 'c', 'd')]

あなたの場合、それは次のようなものになります:

for row in data:
    for item in itertools.product(*row[0]):
        print '-'.join(item)
于 2013-02-21T01:27:45.820 に答える