为了账号安全,请及时绑定邮箱和手机立即绑定

在Python中更改字符串中的一个字符

在Python中更改字符串中的一个字符

MMMHUHU 2019-07-02 15:59:33
在Python中更改字符串中的一个字符在Python中替换字符串中的字符最简单的方法是什么?例如:text = "abcdefg";text[1] = "Z";           ^
查看完整描述

3 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

不要修改字符串。


将它们作为列表处理;只有在需要时才将它们转换为字符串。


>>> s = list("Hello zorld")

>>> s

['H', 'e', 'l', 'l', 'o', ' ', 'z', 'o', 'r', 'l', 'd']

>>> s[6] = 'W'

>>> s

['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']

>>> "".join(s)

'Hello World'

Python字符串是不可变的(即它们不能被修改)。确实有很多原因何在。在没有选择之前使用列表,然后再将它们转换为字符串。


查看完整回答
反对 回复 2019-07-02
?
慕容708150

TA贡献1831条经验 获得超4个赞

最快的方法?

有三种方法。对于速度搜索器,我推荐“方法2”。

方法1

由这回答

text = 'abcdefg'new = list(text)new[6] = 'W'''.join(new)

与“方法2”相比,这是相当慢的。

timeit.timeit("text = 'abcdefg'; s = list(text); s[6] = 'W'; ''.join(s)", number=1000000)1.0411581993103027

方法2(快速法)

由这回答

text = 'abcdefg'text = text[:1] + 'Z' + text[2:]

这要快得多:

timeit.timeit("text = 'abcdefg'; text = text[:1] + 'Z' + text[2:]", number=1000000)0.34651994705200195

方法3:

字节数组:

timeit.timeit("text = 'abcdefg'; s = bytearray(text); s[1] = 'Z'; str(s)", number=1000000)1.0387420654296875


查看完整回答
反对 回复 2019-07-02
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

Python字符串是不可变的,您可以通过复制来更改它们。
做你想做的事最简单的方法可能是。

text = "Z" + text[1:]

文本[1:]将文本中的字符串从位置1返回到末尾,位置计数从0开始,因此‘1’是第二个字符。

编辑:您可以对字符串的任何部分使用相同的字符串切片技术。

text = text[:1] + "Z" + text[2:]

或者,如果字母只出现一次,则可以使用下面建议的搜索和替换技术。


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 3143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信