找到所有可能的组合

时间:2011-06-10 21:45:51

标签: python list

我之前提到过这个问题,但是关于其他编程语言。

假设我有一些词根,前缀和后缀。

roots = ["car insurance", "auto insurance"]
prefix = ["cheap", "budget"]
suffix = ["quote", "quotes"]

Python中是否有一个简单的函数可以构建三个字符向量的所有可能组合。

所以我想要一个列表或其他数据结构,它返回每个字符串的所有可能组合的以下列表。

cheap car insurance quotes
cheap car insurance quotes
budget auto insurance quotes
budget insurance quotes
...

2 个答案:

答案 0 :(得分:9)

使用itertools.product()

for p, r, s in itertools.product(prefix, roots, suffix):
    print p, r, s

答案 1 :(得分:2)

没有必要导入库,因为Python已经内置了这种语法。它不仅仅是打印,而是返回一个你要求的数据结构,然后你就可以将这些字符串连接在一起来启动:

combinations = [
    p + " " + t + " " + s
    for t in ts for p in prefix for s in suffix]