【发布时间】:2017-04-14 12:55:29
【问题描述】:
例如,我有一个lst = "ABCXYZ",我希望输出是"CDEZAB"
到目前为止我想出的最好的方法是:
"".join(chr((ord(x)-ord('A')+2)%26+ord('A')) for x in lst)
这很尴尬。使用像 {'A': 'C', 'B': 'D', ……, 'X': 'Z', 'Y': 'A', 'Z': 'B'} 这样的字典似乎更符合 Python 风格,但更尴尬。
有什么想法吗?
【问题讨论】:
-
虽然可以很容易地创建字典:
conv = dict(zip(alphabet, alphabet[2:] + alphabet[:2]))然后转换就像''.join(map(conv.get, string))一样简单
标签: python string algorithm python-3.x ascii