gpt4 book ai didi

python - 根据索引快速重新创建 python 字符串

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

这是一个简单的问题,但我意识到我被困在如何快速在 python 中执行以下操作:

假设我在 Python3.x 中有以下字符串,长度为 24 个字符:

exstr1 = "BBBBBBDDDDDDHHHGHHFFGGFF"

我还有以下列表,它对应于基于上述字符串的索引:

index = [0, 1, 3, 4, 5, 8, 9, 10, 11, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23]

基于这些索引,我想创建一个新字符串,上面的每个索引都会将字符更改为“S”

"SSBSSSDDSSSSSHSHSSSSSSSSF"

现在,在 Python 中,您不能直接操作字符串。如果我尝试以下操作:

for i in index:
exstr1[i] = 'S'

我会得到以下错误:

TypeError: 'str' object does not support item assignment

低效的解决方案是创建一个 range(23),创建所有 S 长度为 24 的字符串,如果“索引”不在范围内,访问原始字符串并以某种方式更改值。

生成上述“S”字符串的有效解决方案是什么?

最佳答案

你可以使用 list() 方法,除此之外你还可以使用列表理解方法:

exstr1 = "BBBBBBDDDDDDHHHGHHFFGGFF"

index = [0, 1, 3, 4, 5, 8, 9, 10, 11, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23]


data=[i for i in exstr1]

for i in index:
data[i]='S'

print(data)

输出:

['S', 'S', 'B', 'S', 'S', 'S', 'D', 'D', 'S', 'S', 'S', 'S', 'S', 'H', 'S', 'G', 'S', 'S', 'S', 'S', 'S', 'S', 'S', 'S']

关于python - 根据索引快速重新创建 python 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49714254/

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