国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

string下的maketrans和translate

2019-11-14 17:05:54
字體:
來源:轉載
供稿:網友

  在玩python challenge的時候發現一個比較有趣的函數所以記下來。

  問題是這樣的

  

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

#要把這東西按照g->i,f->h這樣格式26個字母轉換一遍才知道它要表達什么。

 一開始,博主只能用到自己想到的笨辦法。

#-*- coding:utf-8 -*-import stringalist="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"blist=""for i in alist:    if i in string.lowercase:    #string.lowercase表示小寫字母        if ord(i)>120:            i = chr(ord(i)-24)        else:            i= chr(ord(i)+2)    blist+=iPRint blist#i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and that's why this text is so long. using string.maketrans() is recommended. now apply on the url

笨辦法用完之后看到提示,可以同string.maketrans()函數,度娘查了下。發現可以string.maketrans()和translate()配合十分好用,先上改裝后的demo

#-*- coding:utf-8 -*-import stringalist="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"mapping=string.maketrans(string.lowercase,string.lowercase[2:]+string.lowercase[:2])blist = alist.translate(mapping,'')print blist
#i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and that's why this text is so long. using string.maketrans() is recommended. now apply on the url

改裝之后十分精簡,nice!

另外附上用到函數的語法。

mapping = string.maketrans('asdf','ASDF')#maketrans函數主要用來創建一一對應關系,這里a->A,s->S,d->D,f->.#再次強調是一一對應如果mapping = string.maketrans('asdf','ASD')則會報錯。"ValueError:maketrans arguments must have same length"#maketrans可以接受ord()值少于256的字符,可以是字母數字或者特殊符號,但是不可以中文#使用str.translate()test_string = "wo shi yi zhi cai niao!"result = test_string.translate(mapping)print result#wo Shi yi zhi cAi niAo! 根據mapping把A大寫了result = test_string.translate(None,'o')print result#如果映射為None則不映射,直接刪除字母'o'result = test_string.translate(mapping,'o')print result#根據mapping映射,并刪除字母oresult = test_string.translate(None)print result#不做任何操作,只是說明映射參數是require的即使是None

另外,博主用的是py2.7。不排除py3有新情況如果能有個中文映射就更好了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万安县| 政和县| 昔阳县| 巴青县| 孙吴县| 富裕县| 永嘉县| 上虞市| 林口县| 治县。| 郎溪县| 清涧县| 遵义县| 建昌县| 凌海市| 湖南省| 太和县| 曲靖市| 苏尼特左旗| 公安县| 射洪县| 民勤县| 恭城| 韶关市| 绵阳市| 临武县| 河北省| 东城区| 十堰市| 渑池县| 绥中县| 桑日县| 丰台区| 荔波县| 彝良县| 马山县| 三门峡市| 夹江县| 吐鲁番市| 康马县| 盐山县|