通过列表中的索引将字符替换为另一个字符

时间:2017-06-20 18:52:43

标签: python list

我有一个位置索引列表,我希望用文字' +'替换文本文件中的字符。所以我的文本文件有25万个字符,我想只替换这些索引的文件。

a = [105, 777, 1449, 2121, 2793, 3465, 4137, 4809, 5481, 6153, 6825,
     7497, 8169, 8841, 9513, 10185, 10857, 11529, 12201, 12873, 13545, 14217,]

我的第一个想法是在列表上运行for循环:

for idx, item in enumerate(a):
     Raw_text[i] = Raw_text[i].replace(']','+')

但这给了我输出:

TypeError: 'unicode' object does not support item assignment

在查看了一些stackoverflow问题后,我理解了这个错误,但是如何仅替换列表中的那些项目,甚至比列表更大?

2 个答案:

答案 0 :(得分:1)

如果您只想在特定索引处替换它们

   text_file = "0123456789"

   indexes = [1,3,6,9]

   for index in indexes:
       text_file = text_file[:index] + '+' + text_file[index+1:]
索引1,3,6和9的

text_file结果项目替换为' +'

"0+2+45+78+"

答案 1 :(得分:0)

您始终可以将字符串转换为列表,然后稍后将其重新转换回来。

raw_list = list(raw_text)
for i in a:
    raw_list[i] = '+'

raw_text = ''.join(raw_list)