如何递增一个字符?
我刚开始学Python,之前用过Java和C语言。我想知道怎么给字符加一。在Java或C语言中,字符和整数几乎可以互换使用,有时候在循环中能给字符加一对我来说非常有用,这样我也可以用字符来索引数组。
那在Python中我该怎么做呢?没有传统的for(;;)循环已经让我觉得很糟糕了,有没有办法让我实现我想要的功能,而不需要完全重新考虑我的思路呢?
7 个回答
6
看看这个:使用for循环
for a in range(5):
x='A'
val=chr(ord(x) + a)
print(val)
循环输出:A B C D E
16
“没有传统的 for(;;) 循环,这也太糟糕了吧?”这是什么意思呢?
你是不是在尝试做
import string
for c in string.lowercase:
...do something with c...
或者你可能在用 string.uppercase
或 string.letters
?
Python 里没有 for(;;)
这种写法,因为通常有更好的方法来实现同样的功能。而且,Python 也没有字符运算,因为那也不是必需的。
201
在Python 2.x中,你只需要使用ord
和chr
这两个函数就可以了:
>>> ord('c')
99
>>> ord('c') + 1
100
>>> chr(ord('c') + 1)
'd'
>>>
而在Python 3.x中,这一切变得更加清晰和有趣,因为它明确区分了字节和Unicode。默认情况下,"字符串"就是Unicode,所以上面的用法是有效的(ord
可以接收Unicode字符,而chr
可以生成这些字符)。
不过,如果你对字节感兴趣(比如处理一些二进制数据流),那就更简单了:
>>> bstr = bytes('abc', 'utf-8')
>>> bstr
b'abc'
>>> bstr[0]
97
>>> bytes([97, 98, 99])
b'abc'
>>> bytes([bstr[0] + 1, 98, 99])
b'bbc'