所以我只是python中的菜鸟,我正在做这个练习:
"写一个函数translate(),将一个文本翻译成"rövarspråket"(瑞典语为"强盗的语言").也就是说,每个辅音加倍并在其间放置"o".例如,翻译("这是有趣的")应该返回字符串"tothohisos isos fofunon"."
我能够做到这里是我的代码:
def translate (var1):
vaw = ['b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','z']
var1 = list(var1)
for string in var1:
if string == string in vaw:
var1[var1.index(string)] = string + 'o' + string
print ''.join(var1)
Run Code Online (Sandbox Code Playgroud)
我想知道这是否正确,或者是否有另一种方法可以用更少的代码来做到这一点?
def translate(s):
consonants = 'bcdfghjklmnpqrstvwxz'
return ''.join(l + 'o' + l if l in consonants else l for l in s)
print(translate("this is fun"))
Run Code Online (Sandbox Code Playgroud)
正则表达式是一个很好的解决方案
>>> import re
>>> print re.sub(r"([bcdfghjklmnpqrstvwxyz])",r"\1o\1","this is fun")
tothohisos isos fofunon
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4929 次 |
| 最近记录: |