如何从关键字列表生成所有组合?

2024-05-23 20:13:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建域名生成器,我有这样的关键字列表>

mare italia offerte agosto 2013
mare italia 2013 offerte
mare italia villaggi
mare italia last second
mare italia vacanze
mare italia last minute 2012
mare italia offerte agosto 2012
mare italia offerte last minute
mare italia bello
mare italia piu bello
mare italia hotel
mare italia residence

我想为每一行创建所有可能的组合,如何在Python中做到这一点?你知道吗

我需要这样的输出:

mare italia
mare italia offerte 
mare italia offerte agosto
mare italia offerte agosto 2013
italia offerte agosto 2013
offerte agosto 2013
agosto 2013
2013 agosto
offerte 2013
2013 offerte
offerte italia
... more

我的起始python代码是:

database = open('keywords.txt', 'r').readlines()
for line in database:
    print line

Tags: gt列表line关键字database域名lastsecond
2条回答

您可以使用^{}

from itertools import combinations

seen = set()  # keep track of printed lines

with open("keywords.txt") as f:
    for line in f:
        words = line.rstrip().split()

        for i in range(2, len(words)):
            for c in combinations(words, i):
                l = " ".join(c)
                if l not in seen:
                    print(l) 
                    seen.add(l)

这将打印所有不同的行

from itertools import combinations


final=set()

with open('keywords.txt') as file:
    for line in file:
        words=line.strip().split()
        for i in range(2,len(words)):
            for j in combinations(words,i):
                final.add(' '.join(j))

print '\n'.join(final)

相关问题 更多 >