Python:我如何增加一个字符?
我是Python新手,来自Java和C.我怎样才能增加一个字符? 在Java或C中,字符和整数实际上是可以互换的,在某些循环中,能够执行增量字符和通过字符索引数组是非常有用的。
我怎样才能在Python中做到这一点? 没有一个传统的(?;)活套是不够的 – 有什么办法可以达到我想达到的目的,而不必重新考虑我的整个策略?
任何帮助赞赏。
在Python 2.x中,只需使用ord
和chr
函数:
>>> 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.uppercase
或string.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