简体   繁体   English

从列表创建所有可能的组合

[英]Create all posible combinations from a list

I've got a list 我有一个清单

[
 [[[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']]]
]

list is already created from this text 已根据此文本创建列表

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

I need to get all variants that could be done using that list: 我需要获取可以使用该列表完成的所有变体:

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

How would I go about doing this? 我将如何去做呢?

Use itertools.product and expand the list into arguments: 使用itertools.product并将列表扩展为参数:

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

In your case, it'd be something like: 在您的情况下,可能是这样的:

for row in data:
    for item in itertools.product(*row[0]):
        print '-'.join(item)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM