分享

利用string.maketrans跟translate +collections替换字符串

 Tech-d 2014-12-02
python challenge中的第1题目, 来自python challenge forum

source = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."

解法:

import string

table = string.maketrans('abcdefghijklmnopqrstuvwxyz', 'cdefghijklmnopqrstuv
wxyzab') #创建一个用于替换字符串的table,相当于密码的母本

target = source.translate(table) #用母本来翻译source 字符串,得到结果


如果不想手动输入‘abcdefg...’之类的,可以使用collections模块
import collections as c

t = c.deque(string.ascii_lowercase) #deque(['a', 'b', 'c', ...])
t.rotate(-2) #deque(['c', 'd', ..., 'z', 'a', 'b'])
ascii_lowercase_shifted = ''.join(t)          #'cdef...yzab'

之后再用string.maketrans()来实现替换。






    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多