简短的rot13函数-Python

我正在Python中寻找一个简短而又酷的rot13函数;-)我编写了这个函数:

def rot13(s):

chars = "abcdefghijklmnopqrstuvwxyz"

trans = chars[13:]+chars[:13]

rot_char = lambda c: trans[chars.find(c)] if chars.find(c)>-1 else c

return ''.join( rot_char(c) for c in s )

谁能做得更好?例如,支持大写字符。

回答:

这是一个maketrans / translate解决方案

import string

rot13 = string.maketrans(

"ABCDEFGHIJKLMabcdefghijklmNOPQRSTUVWXYZnopqrstuvwxyz",

"NOPQRSTUVWXYZnopqrstuvwxyzABCDEFGHIJKLMabcdefghijklm")

string.translate("Hello World!", rot13)

# 'Uryyb Jbeyq!'

以上是 简短的rot13函数-Python 的全部内容, 来源链接: utcz.com/qa/400161.html

回到顶部