Python:我如何增加一个字符?

我是Python新手,来自Java和C.我怎样才能增加一个字符? 在Java或C中,字符和整数实际上是可以互换的,在某些循环中,能够执行增量字符和通过字符索引数组是非常有用的。

我怎样才能在Python中做到这一点? 没有一个传统的(?;)活套是不够的 – 有什么办法可以达到我想达到的目的,而不必重新考虑我的整个策略?

任何帮助赞赏。

在Python 2.x中,只需使用ordchr函数:

 >>> ord('c') 99 >>> ord('c') + 1 100 >>> chr(ord('c') + 1) 'd' >>> 

由于Python 3.x中字节和unicode的明显区别,Python 3.x使得它更加有组织和有趣。 默认情况下,“string”是unicode,所以上面的工作( ord接收Unicode字符和chr产生它们)。

但是如果你对字节感兴趣(例如处理一些二进制数据stream),情况就更简单了:

 >>> bstr = b'abc' >>> bstr[0] 97 >>> bytes([97, 98, 99]) b'abc' >>> bytes([bstr[0] + 1, 98, 99]) b'bbc' 

“够不够传统的(…;)活套”? 什么?

你想要做什么

 import string for c in string.lowercase: ...do something with c... 

或者也许你正在使用string.uppercasestring.letters

Python没有for(;;)因为通常有更好的方法来做到这一点。 它也没有人格math,因为它也没有必要。

我来自PHP,在那里你可以增加字符(A到B,Z到AA,AA到AB等)使用++运算符。 我做了一个简单的函数,在Python中也是这样做的。 您还可以将字符列表更改为任何(小写,大写等)是您的需要。

 # Increment char (a -> b, az -> ba) def inc_char(text, chlist = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'): # Unique and sort chlist = ''.join(sorted(set(str(chlist)))) chlen = len(chlist) if not chlen: return '' text = str(text) # Replace all chars but chlist text = re.sub('[^' + chlist + ']', '', text) if not len(text): return chlist[0] # Increment inc = '' over = False for i in range(1, len(text)+1): lchar = text[-i] pos = chlist.find(lchar) + 1 if pos < chlen: inc = chlist[pos] + inc over = False break else: inc = chlist[0] + inc over = True if over: inc += chlist[0] result = text[0:-len(inc)] + inc return result