在给定索引位置插入字符串

106 投票
9 回答
410854 浏览
提问于 2025-04-16 06:06

我想知道怎么把一些文字插入到一个已经存在的字符串里。

比如说,我有一个字符串 "姓名 年龄 组别 班级 职业"。我想在第四个词前面再插入第三个词三次,这样就变成 "姓名 年龄 组别 组别 组别 组别 班级 职业"

我知道可以用 .split() 把字符串分成单词,但接下来该怎么做呢?

9 个回答

28

我知道这样做不太合适(因为它使用了字符串拼接,这种方法效率不高),但在我看来,简单的方法是:

def insert (source_str, insert_str, pos):
    return source_str[:pos] + insert_str + source_str[pos:]
155

一个常常让新手Python程序员感到困惑的重要点是,Python中的字符串是不可变的——你永远不能直接修改它们。

在使用Python中的字符串时,你需要调整自己的思维方式,不再想着“我该如何修改这个字符串?”而是要想着“我该如何创建一个新的字符串,这个新字符串包含了我已经得到的这个字符串的一些部分?”

161

为了帮助将来遇到这个问题的新手,我觉得给出一个简单的答案很合适。

正如 bgporter 所说:Python中的字符串是不可变的,也就是说,如果你想修改一个字符串,就得利用你已有的部分。

在下面的例子中,我把 'Fu' 插入到 'Kong Panda' 中,变成了 'Kong Fu Panda'

>>> line = 'Kong Panda'
>>> index = line.find('Panda')
>>> output_line = line[:index] + 'Fu ' + line[index:]
>>> output_line
'Kong Fu Panda'

在上面的例子中,我使用了索引值将字符串“切割”成两个部分:一个是插入位置之前的部分,另一个是剩下的部分。然后我简单地把想要插入的字符串放在这两部分中间,结果就是我们成功地把一个字符串放进了另一个字符串里。

Python的切片表示法有很好的解释,讲解了字符串切片的相关内容。

撰写回答