读取字符串位置

时间:2013-04-15 00:22:40

标签: python string

我正在努力解决python中的一个基本问题。我需要在某个位置读取一个字符串才能修改它。

示例:对于字符串'abcd'我想要读取第3个位置(第2个位置,因为从0开始)并将其更改为字母表中的下一个字母'abdd'。但是,如果字符串碰巧是'abrd',那么应该更改为'absd'等等。所以,我需要阅读并写入特定的位置,让其他所有内容保持不变;应该是世界上最简单的事情,但我找不到怎么做。

2 个答案:

答案 0 :(得分:2)

问题的答案很简单:使用列表切片语法:

>>> string='abcd'
>>> print string[:2] + 'd' + string[3:]
abdd

如果您认为只增加字符串的序数值是安全的,那么您可以这样做:

>>> string='abrd'
>>> string=string[:2] + chr(ord(string[2]) + 1) + string[3:]

由于你的问题没有说明,我认为这就是你需要的。如果你想从'z'循环到'a',或者特意处理不同的字母大小写或unicode字符集,你可能会发现一些粗糙的补丁。

如果您的问题比仅增加ord更复杂,请考虑使用translation table

答案 1 :(得分:1)

除了@kojiro回答。另一种方法是将字符串切换为 list 并将其加入。例如:

S = 'abcd'
// Convert to list
L = list(S)
// Change 3rd position
L[3] = 'd'
// Join it back and print
print ''.join(L)

但是,如果您需要替换不同的字符,则可以定义字典映射以简化转换过程。例如:

// Define {a -> x} mapping.
M = {'c': 'd', 'r': 's'}
// Substitution
L[3] = M[L[3]]