你可以用.translate().
返回字符串的副本,其中每个字符已通过给定的转换表进行映射.
https://docs.python.org/3/library/stdtypes.html#str.translate
例:
>>> "abcd".translate(str.maketrans("ad","da"))
'dbca'
Run Code Online (Sandbox Code Playgroud)
您可以使用列表理解来切换所需的值
\n\nx = "abcd"\n\'\'.join([\'d\' if i == \'a\' else \'a\' if i == \'d\' else i for i in x])\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n\'dbca\'
\n
没有清单
\n\nx = "abcd"\n\'\'.join(\'d\' if i == \'a\' else \'a\' if i == \'d\' else i for i in x)\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n\'dbca\'
\n
In [1]: x = "abcd"*10000000\n\nIn [2]: %timeit \'\'.join(\'d\' if i == \'a\' else \'a\' if i == \'d\' else i for i in x)\n5.78 s \xc2\xb1 152 ms per loop (mean \xc2\xb1 std. dev. of 7 runs, 1 loop each)\n\nIn [3]: %timeit \'\'.join([\'d\' if i == \'a\' else \'a\' if i == \'d\' else i for i in x])\n4.49 s \xc2\xb1 157 ms per loop (mean \xc2\xb1 std. dev. of 7 runs, 1 loop each)\nRun Code Online (Sandbox Code Playgroud)\n\n事实证明列表理解稍微快一些。
\n| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |