这是一个简单的问题,但我意识到我被困在如何在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
的字符串,如果“索引”不在范围内,访问原始字符串并以某种方式更改值。你知道吗
生成上面的“S”字符串的有效解决方案是什么?你知道吗
如果你想把它放在一行,你可以这样做:
其思想是在“S”位置之间提取xstr1的子范围,然后在每个位置之间用“S”连接它们。这种方法假设列表中的索引是按递增顺序排列的,没有重复。你知道吗
将exstr1拆分为一个字符列表,对该列表执行所有操作,然后将其重新连接在一起。你知道吗
您可以使用list()方法,除此之外还可以使用列表理解方法:
输出:
相关问题 更多 >
编程相关推荐