x = "Foo 890 bar *()"

如何获取小写的内容,包括将"*()"“未移位”回890?所需结果:
foo 890 bar 890

不需要的:
x.lower() => "foo 890 bar *()"

最佳答案

取消移位取决于键盘布局。这不是通用映射。您可以对其中一个进行硬编码。

unshift = {
    '!': '1', '@': '2', '#': '3', '$': '4', '%': '5',
    '^': '6', '&': '7', '*': '8', '(': '9', ')': '0',
}

x = ''.join(unshift.get(c, c.lower()) for c in x)

编写该映射的另一种更紧凑的方法是:
unshift = dict(zip('!@#$%^&*()', '1234567890'))

09-04 00:17