我们可以将小写字符增加一个

时间:2012-08-06 11:17:28

标签: python

如果我有

char = 'a'

如何将值增加到'b'然后再增加到'c'等等..

我不想替换它或更改它。它非常像

char = char + 1

4 个答案:

答案 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'