[英]Find all possible permutations of removing given char from a string in Python
我想要一个脚本,该脚本将通过删除给定句子的单词之间的任意数量的空格来生成所有可能的文本:
例:
原句:
我想删除空格
预期产量:
I want to delete spaces Iwant to delete spaces Iwant todeletespaces Iwanttodelete spaces Iwanttodeletespaces
等等
您可以使用itertools完成 。
我们创建一个单词列表,然后将它们与''
(空字符串)或' '
(空格)的所有可能组合结合起来:
from itertools import product, zip_longest
s = 'I want to delete spaces'
words = s.split()
for separators in product((' ', ''), repeat=len(words)-1):
print(''.join(word+separator for word, separator in zip_longest(words, separators, fillvalue='')))
输出:
I want to delete spaces
I want to deletespaces
I want todelete spaces
I want todeletespaces
I wantto delete spaces
I wantto deletespaces
I wanttodelete spaces
I wanttodeletespaces
Iwant to delete spaces
Iwant to deletespaces
Iwant todelete spaces
Iwant todeletespaces
Iwantto delete spaces
Iwantto deletespaces
Iwanttodelete spaces
Iwanttodeletespaces
因为单词比分隔符多,所以我们使用zip_longest
和fillvalue=''
,以便在最后一个单词之后使用空字符串作为分隔符。
您可以使用find
:
s = 'I want delete spaces'
while ' ' in s:
ind = s.find(' ')
s = s[:ind] + s[ind+1:]
print(s)
I want delete spaces
Iwant delete spaces
Iwantdelete spaces
Iwantdeletespaces
等等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.