想建立如下映射关系:
'a' --> 'c'
'b' --> 'd'
...
'y' --> 'a'
'z' --> 'b'
在C中我们可以很轻松的用加法实现, 但是换到python, 我想到了以下方法:
from string import ascii_lowercase as al
my_dict = dict(zip(al, [chr((ord(x)-95)%26+97) for x in al]))
看起来一点都不cool, 主要是求字符的后两位字符那里处理的不好, 大伙有没有更pythonic点的方法呢?
我不知道為什麼還要用到chr 和ord?? 我的意思是說:你的需求很簡單啊,26個字母是知道的咯,往後錯2位是麼。
需求是實現了,我覺得你可能問題關鍵不是我所回答的。
雷雷
Python 挑戰 1 級演練
dict(zip(al, map(lambda x : chr((ord(x) - 95) % 26 + 97), al)) )
坐等高手...
呵呵, 沒有檢驗部分
其實一點也不 Pythonic :(