Python如何“递增”一个字符字符串?

4

我知道在Java中,如果你有一个char变量,你可以这样做:

char a = 'a'
a = a + 1
System.out.println(a)

这将会打印出 'b'。我不知道这是什么,但有没有办法在 Python 中实现这个功能?

2
在Java中,char值本质上与无符号16位整数相同。因此,将其递增实际上只是将其递增。然而,Python不会将字符与整数互换使用。 - Greg Hewgill
1
进一步解释Greg所说的,你如何递增"I am a string"?因为在Python中,'char'就是一个长度为1的字符串。 - aaronasterling
可能是Python:如何递增一个字符?的重复问题。 - outis
3个回答

14

您可以使用 ord 和 chr 函数:

print(chr(ord('a')+1))
# b

了解更多关于ordchr的信息。


5

1
以上解决方案在字符为z且增量为1或2时无法正常工作。
例如:如果您将z增加incr(假设incr = 2或3),则(chr(ord('z')+incr))不会给您增加的值,因为ASCII值超出范围。
对于通用方法,您必须这样做。
i = a to z any character
incr = no. of increment
#if letter is lowercase
asci = ord(i)
if (asci >= 97) & (asci <= 122):            
  asci += incr
  # for increment case
  if asci > 122 :
    asci = asci%122 + 96
    # for decrement case
    if asci < 97:
      asci += 26
    print chr(asci)

它可以适用于增量或减量。

对于大写字母也可以这样做,只需更改ASCII值即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接