Re: [問題] 如何能做到字母進位呢?
※ 引述《yauhh (小y寶貝)》之銘言:
: ※ 引述《xatier (陪在妳身邊 :))》之銘言:
: : 你的好做
: : (lambda s:
: : lambda sFixed=s.rstrip('z'):
: : lambda lz=len(s)-len(sFixed):
: : (sFixed[:-1] + chr(ord(sFixed[-1])+1) if sFixed else 'a') + 'a'*lz)
: : ('a')()()
: def part_zs(s):
: return s.rstrip('z'), (len(s)-len(s.rstrip('z')))
: def incaz((h, zn)):
: return (h[:-1] + chr(ord(h[-1])+1) if h else 'a') + 'a' * zn
: print(incaz(part_zs('au')))
: Functional Programming的重點在於函數本身要寫得短,而且函數主題明確。
: 的確一個函數可以寫成一行,但是,一個目標不見得要是一行完成。
: 其實寫一行或寫三行,所用到的函數一樣多,擠成一行照樣該跑多久就跑多久。
: 擠成一行甚至卻換來難以閱讀的問題。
亂入一個 perl 的.. :p
(呣.. 因為好像沒有看到有人提供正規表達式作法, 等得心有點癢 ._.)
假設 $s 是放 input 字串, 例如 a, at, az, zzz 等等
$s =~ s(([^z])?(z*)$){
($1 ? chr(ord($1)+1) : 'a') .
'a' x length $2
}e;
執行完以後把 $s 取代為 output 字串, 例如 b, au, ba, aaaa
這樣應該也可以算是一個 expression 哄?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.121.80.249
※ 文章網址: http://www.ptt.cc/bbs/Python/M.1418486683.A.CF6.html
推
12/14 00:16, , 1F
12/14 00:16, 1F
→
12/14 00:49, , 2F
12/14 00:49, 2F
→
12/14 00:50, , 3F
12/14 00:50, 3F
推
12/14 22:20, , 4F
12/14 22:20, 4F
→
12/21 21:34, , 5F
12/21 21:34, 5F
→
12/21 21:41, , 6F
12/21 21:41, 6F
→
12/21 21:41, , 7F
12/21 21:41, 7F
→
12/21 21:42, , 8F
12/21 21:42, 8F
→
12/21 21:42, , 9F
12/21 21:42, 9F
→
12/21 21:42, , 10F
12/21 21:42, 10F
→
12/21 21:43, , 11F
12/21 21:43, 11F
→
12/21 21:43, , 12F
12/21 21:43, 12F
討論串 (同標題文章)