如果我有
char = 'a'
如何将值增加到'b'然后再增加到'c'等等..
我不想替换它或更改它。它非常像
char = char + 1
答案 0 :(得分:10)
>>> chr(ord('a') + 1)
'b'
答案 1 :(得分:8)
您可以像这样进行增量转换。在这种情况下,我已将'z'映射回'a'
>>> from string import maketrans, ascii_lowercase
>>> char_incrementer = maketrans(ascii_lowercase, ascii_lowercase[1:]+ascii_lowercase[0])
>>> 'a'.translate(char_incrementer)
'b'
您可以轻松地将其应用于整个字符串
>>> 'hello'.translate(char_incrementer)
'ifmmp'
答案 2 :(得分:4)
像这样:
char = chr(ord(char) + 1)
或者更像这样的pythonic:
from string import ascii_lowercase
char = ascii_lowercase[ascii_lowercase.index(char) + 1]
请注意,在您到达z
后,这两种方法都会产生潜在的不良行为。
在不知道你将要使用它的情况下,我很难肯定地说,但我会研究你是否能以避免这个问题的方式做你正在做的事情。例如,如果你有这样的代码:
char = "a"
while True:
if xxx():
break
if yyy():
continue
value = zzz()
print char, value
char = chr(ord(char) + 1)
请改为:
def find_values():
while True:
if xxx():
break
if yyy():
continue
yield zzz()
for char, value in zip(ascii_lowercase, find_values()):
print char, value
答案 3 :(得分:1)
>>> chr((ord('a')+1)%97%26 + 97)
'b'
>>> chr((ord('z')+1)%97%26 + 97)
'a'