在Python中一次更改多个元素

时间:2013-03-08 11:27:16

标签: python string letters

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

无论如何,我要离题了。如果我只知道如何将特定的符号更改为强大的其他特定符号而不会用112 if if / elif语句写一个意大利面条代码(总符号我必须交换* 4,因为反之亦然和移位值)/ < / p>

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

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

太长了。

2 个答案:

答案 0 :(得分:4)

>>> import string
>>> t = string.maketrans("Qq","Yy")
>>> "QqQq".translate(t)
'YyYy'

答案 1 :(得分: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'