作者bigpigbigpig (To littlepig with love)
看板Python
标题Re: [问题] 如何能做到字母进位呢?
时间Fri Dec 12 01:17:24 2014
※ 引述《opengood5566 ( )》之铭言:
: 比如说进行加一: a变b, at变au, az变ba
: 请问有甚麽办法可以做到这样吗?
: 感谢!
我写的,有点丑:
letters = 'abcdefghijklmnopqrstuvwxyz'
next_letter = dict(zip(letters,letters[1:]+letters[:1]))
def increment(s):
rs = list(reversed(s.lower()))
for p, l in enumerate(rs):
rs[p] = next_letter[l]
if l != 'z': break
if p == len(rs)-1 and l == 'z': rs.append('a')
return ''.join(reversed(rs))
===========================================================
>>> increment('at')
'au'
>>> increment('k')
'l'
>>> increment('z')
'aa'
>>> increment('zzzz')
'aaaaa'
>>> increment('cz')
'da'
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.251.228.62
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Python/M.1418318246.A.614.html
※ 编辑: bigpigbigpig (111.251.228.62), 12/12/2014 01:19:04
※ 编辑: bigpigbigpig (111.251.228.62), 12/12/2014 02:27:18
1F:推 yauhh: 哦,好直接(拍手) 12/12 08:25