Ris*_*abh -1 python list replacewith python-3.x
我有一个超过50个元素的列表.这些元素是小写和大写字母,数字,特殊字符.
例如.
sample_list = ['1', '0', 'b', 'B', '2', '6', 'a', '7', '9', '5', 'c', 'd', '4', 'A', 'C', 'f', 'D', 'F', '3', 'C', '8', 'A', 'F', 'B', 'A', 'A', 'D']
Run Code Online (Sandbox Code Playgroud)
我想用特殊字符交换特定元素.例如.
replacing `A,B,C and 1 with @
replacing `D,E,F and 2 with &
replacing `G,H,I and 3 with (
Run Code Online (Sandbox Code Playgroud)
等等,我必须用11个选定的特殊字符替换一组特定的元素.就像我用3个特殊字符替换了几个选中的元素.
如何有效地做到这一点.
您可以使用translate以下方法执行此操作:
sample_list = ['1', '0', 'b', 'B', '2', '6', 'a', '7', '9', '5', 'c', 'd', '4', 'A', 'C', 'f', 'D', 'F', '3', 'C', '8', 'A', 'F', 'B', 'A', 'A', 'D']
t = ''.maketrans('ABC1DEF2GHI3','@@@@&&&&((((')
out = [i.translate(t) for i in sample_list]
print(out)
Run Code Online (Sandbox Code Playgroud)
输出:
['@', '0', 'b', '@', '&', '6', 'a', '7', '9', '5', 'c', 'd', '4', '@', '@', 'f', '&', '&', '(', '@', '8', '@', '&', '@', '@', '@', '&']
Run Code Online (Sandbox Code Playgroud)
maketrans方法str用于创建转换表,只需用两个相等长度的strs来提供它,第一个由键组成,第二个由值组成.translate方法接受该表并相应地替换字符,或者如果表中没有这样的键则保持原始完整.
编辑:如OlivierMelançon所述,只有当你想用1个字符替换1个字符时才可以使用它.
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |