gpt4 book ai didi

python - python字符串项赋值的替代方案

转载 作者:IT老高 更新时间:2023-10-28 20:21:34 25 4
gpt4 key购买 nike

对python字符串使用项目分配的最佳/正确方法是什么?

s = "ABCDEFGH" s[1] = 'a' s[-1]='b' ?

正常方式会抛出:'str' object does not support item assignment

最佳答案

字符串是不可变的。这意味着您根本无法分配给它们。您可以使用格式:

>>> s = 'abc{0}efg'.format('d')
>>> s
'abcdefg'

或串联:

>>> s = 'abc' + 'd' + 'efg'
>>> s
'abcdefg'

或替换(感谢 Odomontois 提醒我):

>>> s = 'abc0efg'
>>> s.replace('0', 'd')
'abcdefg'

但请记住,所有这些方法都会创建字符串的副本,而不是就地修改它。如果您想就地修改,您可以使用 bytearray ——尽管这仅适用于纯 ascii 字符串,正如 alexis 指出的那样。

>>> b = bytearray('abc0efg')
>>> b[3] = 'd'
>>> b
bytearray(b'abcdefg')

或者您可以创建一个字符列表并对其进行操作。这可能是进行频繁、大规模字符串操作的最有效和正确的方法:

>>> l = list('abc0efg')
>>> l[3] = 'd'
>>> l
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> ''.join(l)
'abcdefg'

并考虑 re用于更复杂操作的模块。

字符串格式化和列表操作是最有可能是正确和高效的 IMO 的两种方法 - 仅需要少量插入时的字符串格式化,以及需要频繁更新字符串时的列表操作。

关于python - python字符串项赋值的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9453820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com