国产探花免费观看_亚洲丰满少妇自慰呻吟_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有新情況如果能有個中文映射就更好了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陇川县| 丹东市| 潮州市| 秭归县| 射阳县| 龙泉市| 赤水市| 达拉特旗| 邯郸县| 沙河市| 大洼县| 新兴县| 五峰| 布尔津县| 邢台市| 灵川县| 阳城县| 福州市| 汉川市| 太康县| 义乌市| 得荣县| 新干县| 华池县| 彰武县| 辉县市| 高雄县| 宝应县| 什邡市| 新巴尔虎右旗| 灵璧县| 珠海市| 拉萨市| 苗栗县| 尚志市| 柏乡县| 仪陇县| 扬州市| 云梦县| 丘北县| 万安县|