Python 中替换字符串中字符的最简单方法是什么?
例如:
text = "abcdefg";
text[1] = "Z";
^
原文由 kostia 发布,翻译遵循 CC BY-SA 4.0 许可协议
Python 中替换字符串中字符的最简单方法是什么?
例如:
text = "abcdefg";
text[1] = "Z";
^
原文由 kostia 发布,翻译遵循 CC BY-SA 4.0 许可协议
有三种方法。对于追求速度的人,我推荐“方法 2”
方法一
由这个 答案 给出
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
方法三:
字节数组:
timeit.timeit("text = 'abcdefg'; s = bytearray(text); s[1] = 'Z'; str(s)", number=1000000)
1.0387420654296875
原文由 Mehdi Nellen 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答850 阅读✓ 已解决
不要修改字符串。
使用它们作为列表;仅在需要时将它们转换为字符串。
Python 字符串是不可变的(即它们不能被修改)。这有 很多 原因。使用列表,直到你别无选择,然后才将它们变成字符串。