0

我想知道如何编写一个算法来一次切换多个字母。我正在寻找一种在(右手打字)Y或U或I或O或P中更改每个(左手打字)Q或W或E或R或T的方法,而不会弄乱空格或大写字母(实际上是使用 shift 键)文本,并将其作为整个键盘的“镜像”(因此它还包括标点符号)。

反正我要跑题了。如果我只知道如何将特定符号更改为其他特定符号,而无需编写带有 112 个 if/elif 语句的意大利面条代码(总符号我必须交换 * 4,因为反之亦然和移位值)/

是否有可能获取一个字符串中的所有符号并将它们与另一个符号中的其他符号切换,同时仍然不会弄乱句子中的空格?

for i in sentence:
    if i == 'Q':
        i = 'Y'
    elif i == 'q':
        i = 'y'
    elif i == # etc...

会太长了。

4

2 回答 2

4
>>> import string
>>> t = string.maketrans("Qq","Yy")
>>> "QqQq".translate(t)
'YyYy'
于 2013-03-08T11:31:06.773 回答
1

使用字典:

In [7]: strs="aAb BcD"

In [8]: dic={'a':'q','A':'w','b':'E','B':'r','c':'A','D':'y'}

In [9]: "".join(dic.get(x,x) for x in strs)
Out[9]: 'qwE rAy'
于 2013-03-08T11:31:01.730 回答