gpt4 book ai didi

Python:用新字符串替换字符串中的字符范围

转载 作者:行者123 更新时间:2023-12-04 16:03:43 24 4
gpt4 key购买 nike

给定以下字符串:
mystring = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
目标是用其他字符交换一个字符位置范围。

例如,用 ABCDE 换出字符 20-24 .
结果将如下所示:
XXXXXXXXXXXXXXXXXXXABCDEXXXXXXXXXXXXXXX
测试:

mystring = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
mystring[20:24] = 'ABCDE'

我收到错误: TypeError: 'str' object does not support item assignment
最终目标是一个可重用的函数,例如:
def replace_chars(some_string, start_char, end_char, replace_string):
if len(replace_string) == (end_char_pos - start_char_pos + 1):
some_string[start_char:end_char] = replace_string
else:
print "replace string invalid length"
sys.exit(1)
return mystring

new_string = replace_chars('XYZXYZ', 2, 4, 'AAA')

我意识到可以将未更改的范围填充到新字符串中:
mystring = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
mystring = mystring[0:19] + 'ABCDE' + mystring[25:38]

然而,这将迫使更多的计算,因为这将针对文件中的行发生数千次。不同的行会有不同的长度,并且会交换不同的字符位置。这样做似乎是一个很长的解决方法,我应该能够直接插入到角色位置就地。

感谢任何帮助,谢谢!

最佳答案

字符串是不可变的(不可更改)。但是您可以索引和连接项目。

mystring = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
mystring = 'ABCDE'.join([mystring[:20],mystring[24:]])

'XXXXXXXXXXXXXXXXXXXXABCDEXXXXXXXXXXXXXX'



请注意字符串长度 "ABCDE"和 mystring[:20], mystring[24:] 之间省略的项目数需要相同的长度。

关于Python:用新字符串替换字符串中的字符范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49701989/

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