我想做如下的事情:
h=@ , e=( , l=& , o=!
Run Code Online (Sandbox Code Playgroud)
因此,在上面的示例中,当您键入时hello,它会返回@(&&!,反之亦然.
(我会在Python中使用它,但它不一定是.)
我想做一个这样的小实用程序.有人可以帮忙吗?谢谢!
编辑: "基本上我希望能够为一些字母分配一个独特的字符.然后,当您运行该实用程序时,它会询问您的输入.然后您按任何顺序键入您想要的内容.使用上面的示例:"hello" ="@(&&!","elloh"="(&&!@","looleh"="&!!&(@"等等.)
在Python2中,您可以使用str.translate:
import string
table = string.maketrans(
'helo',
'@(&!',)
In [17]: 'hello'.translate(table)
Out[17]: '@(&&!'
In [18]: 'looleh'.translate(table)
Out[18]: '&!!&(@'
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用unicode.translate:
In [19]: table = {ord(k):v for k, v in zip(u'helo', u'@(&!')}
In [20]: u'hello'.translate(table)
Out[20]: u'@(&&!'
Run Code Online (Sandbox Code Playgroud)
Lutz Horn的答案显示了如何构建一个可以执行前向和后向翻译的单个表.
在Python3中,string.maketrans 已被替换为bytes.maketrans:
>>> table = bytes.maketrans(b'helo', b'@(&!')
>>> b'hello'.translate(table)
b'@(&&!'
>>> 'hello'.translate({ord(k):v for k, v in zip('helo', '@(&!')})
'@(&&!'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |