gpt4 book ai didi

python - 如何通过索引创建新字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 09:27:00 25 4
gpt4 key购买 nike

假设我有一个字符串“Area51”和一个数组 ['0051'],我将如何用数组替换字符串中的 51,以便输出显示为“Area0051”。假设我有另一个函数可以找到我的 transform_array 但它对这段代码并不重要。

string = 'Area51'
transformation_array = ['0051']

理想情况下,这将扩展到以下示例:

string = '22Area51'
transform_array = ['0022','0051']
# Outputting -> '0022Area0051'

我知道字符串是不可变的,所以我必须创建一个新字符串并且不能使用替换。

我在想一些事情:

import re
string = '22Area51'
nums = re.findall("(\d+",string)
transform_array = ['0022','0051']

new_string = ''
for i in range(len(nums)):
k = s.index(nums[i])
new_string += string[s[:k] + transform_array[i]

但这会输出:

First iteration:
>>> '0022Area51'
Second iteration
>>> '22Area0051'

我似乎无法确定如何将它们组合在一起。任何指导将不胜感激。

最佳答案

您可以使用 itertools.cycle ( doc ) 和带有自定义子函数的 re.sub:

string = '22Area51'
transform_array = ['0022','0051']

import re
from itertools import cycle

c = cycle(transform_array)
print(re.sub(r'\d+', lambda g: next(c), string))

打印:

0022Area0051

或者,如果数字组的数量与变换数组的长度匹配:

import re
c = iter(transform_array)
print(re.sub(r'\d+', lambda g: next(c), string))

关于python - 如何通过索引创建新字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57168493/

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