使用字典在Python中镜像字符串
我想写一个叫 mirror() 的函数,这个函数接收一个字符串,然后返回它的镜像,但前提是这个镜像只能用字母来表示。
举个例子:
>>> mirror('vow')
'wov'
>>> mirror('wood')
'boow'
>>> mirror('bed')
'INVALID'
字符串 "bed" 的镜像不能用字符串表示,因为字母 "e" 的镜像不是一个有效的字符。
我已经写了:
def mirror(str):
mir={'b':'d','d':'b','o':'o','p':'q','q':'p','v':'v','w':'w','x':'x'}
for char in str:
while char in mir:
return str[::-1]
return 'INVALID'
我搞不清楚怎么把字符串中的字符替换成字典里的对应字符,也不知道怎么遍历整个字符串。
1 个回答
0
虽然这个问题的质量不高,但这里有一个有效的解决方案:
def mirror(s):
xs = {
"b": "d", "d": "b", "o": "o", "p": "q",
"q": "p", "v": "v", "w": "w", "x": "x"
}
if all([c in xs for c in s]):
return "".join([xs[c] for c in s])
return "INVALID"
print mirror("vow")
print mirror("wood")
print mirror("bed")
示例:
$ python -i foo.py
vow
woob
INVALID
>>>
希望你能从中学到一些东西。