【发布时间】:2009-11-15 15:14:20
【问题描述】:
我想像这样更改字符串中的 2 个字节:
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
假设我想用 11 替换 'RS',我知道如何用像 [:] 这样的一个字节来做,但是在字符串中间有 2 个或更多?
谢谢!
【问题讨论】:
-
听起来像是功课。你可能想先展示你的尝试。
-
嗯...如何替换字符串中的单个字节?字符串是不可变的。
我想像这样更改字符串中的 2 个字节:
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
假设我想用 11 替换 'RS',我知道如何用像 [:] 这样的一个字节来做,但是在字符串中间有 2 个或更多?
谢谢!
【问题讨论】:
字符串是不可变的,您无法更改它们。您必须从旧字符串的一部分创建一个新字符串:
>>> az= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> az= az[:17]+'11'+az[19:]
>>> az
'ABCDEFGHIJKLMNOPQ11TUVWXYZ'
虽然取决于你在做什么,但可能有一种比依赖固定索引更合适的处理方式,例如。
>>> 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.replace('RS', '11', 1)
'ABCDEFGHIJKLMNOPQ11TUVWXYZ'
【讨论】:
我会使用string.replace():
>>> import string
>>> az = string.lowercase
>>> az = az.replace('rs', '11')
>>> az
'abcdefghijklmnopq11tuvwxyz'
【讨论】:
我认为这是一个技巧问题,请参阅“如何用一个字节来做”:
>>> st="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
>>> st="ABCDEFGHIJKLMNOPQRSTUVWXYZ".replace("R","1").replace("S","1")
>>> print st
ABCDEFGHIJKLMNOPQ11TUVWXYZ
【讨论】: