gpt4 book ai didi

python - 使用 Python 生成两个字符串的组合

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:48 24 4
gpt4 key购买 nike

我有一个字符串 str1 = "ABC",我需要在字符串 str1 中插入 0 到 len(str1) 个“x”,除了最后一个位置。

所以在上面的例子中,我想要一个结果列表,在字符串之前或内部放置 0 到 2 个“x”,看起来像

["ABC",
"xABC",
"AxBC",
"ABxC",
"xxABC",
"xAxBC",
"xABxC",
"AxxBC",
"AxBxC",
"ABxxC"]

我尝试了一些代码如下(我确实意识到我错过了其中的一些组合):

>>> for i in range(1, len(str1)):
... for k in range(len(str1)):
... str1[:k]+"x"*i+str1[k:]
...
'xABC'
'AxBC'
'ABxC'
'xxABC'
'AxxBC'
'ABxxC'
>>>

我不太确定如何处理另一种情况,例如两者之间的交叉。 xAxBC 等

解决这个问题的最佳方法是什么?

最佳答案

使用 itertools.combinations_with_replacement获取索引以插入 xs.:

import itertools

str1 = "ABC"
lst = list(str1)
for n in range(len(str1)):
for idxs in itertools.combinations_with_replacement(range(len(str1)), n):
xs = lst[:]
for i in reversed(idxs): # Use reversed, otherwise index become invald
xs.insert(i, 'x')
print(''.join(xs))

输出:

ABC
xABC
AxBC
ABxC
xxABC
xAxBC
xABxC
AxxBC
AxBxC
ABxxC

关于python - 使用 Python 生成两个字符串的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20175777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com