string - Python 连接字符串以生成字符串中所有单词的组合

标签 string python-3.x join combinations

如果我的字符串是这样的:'this is a string',我如何通过将每个单词与其相邻单词连接来产生所有可能的组合?

这个输出会是什么样子:

this is a string
thisis a string
thisisa string
thisisastring
thisis astring
this isa string
this isastring
this is astring

我尝试过的:

s = 'this is a string'.split()    
for i, l in enumerate(s):
        ''.join(s[0:i])+' '.join(s[i:])

这会产生:

'this is a string'
'thisis a string'
'thisisa string'
'thisisastring'

我意识到我需要更改 s[0:i] 部分,因为它静态锚定在 0 但我不知道如何移动到下一个单词 is 同时仍然在输出中包含 this

最佳答案

使用 itertools 产品的更简单(比公认答案快 3 倍)的方法:

s = 'this is a string'
s2 = s.replace('%', '%%').replace(' ', '%s')
for i in itertools.product((' ', ''), repeat=s.count(' ')):
    print(s2 % i)

关于string - Python 连接字符串以生成字符串中所有单词的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29739011/

相关文章:

python - Pandas 拆分句子和标签短语来执行 BIO 标记

python - 如何从Python列表中删除所有出现的元素?

mysql - SQL查询以查找在连接表中没有特定组ID的用户

mysql - laravel 高级连接 5 个表,其中 2 个表进行比较

python - datetime strptime 在一个时间有效,但在另一相似时间无效

mysql - 如何在同一张表上进行多次连接,然后再与另一张表连接?

javascript - JavaScript 中的字谜查找器

javascript - 如何在单独的行中打印每个单词。除第一个单词外,每个单词都大写

python - 使用 Python 进行字符串解析

python - 仅使用一列对嵌套列表进行排序