我必须通过替换以下内容将文本替换为180°的文本:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ?!.-()<>%$',:_/\
通过
ɐqɔpǝɟƃɥᴉɾʞ˥ɯuodbɹsʇnʌʍxʎz∀qƆpƎℲפHIſʞ˥WNOԀΌɹS┴∩ΛMX⅄Z0ƖᄅƐㄣϛ9ㄥ86 ¿¡˙-)(><%$,':‾\/
我开始为每个角色输入.replace('','')
,但它们必须更简单吗?
答案 0 :(得分:1)
使用str.translate()
method,使用静态str.maketrans()
function从两个字符串构建转换表:
transmap = str.maketrans(
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ?!.-()<>%$',:_/\\",
"ɐqɔpǝɟƃɥᴉɾʞ˥ɯuodbɹsʇnʌʍxʎz∀qƆpƎℲפHIſʞ˥WNOԀΌɹS┴∩ΛMX⅄Z0ƖᄅƐㄣϛ9ㄥ86 ¿¡˙-)(><%$,':‾\\/")
result = inputstring.translate(transmap)
演示:
>>> transmap = str.maketrans(
... "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ?!.-()<>%$',:_/\\",
... "ɐqɔpǝɟƃɥᴉɾʞ˥ɯuodbɹsʇnʌʍxʎz∀qƆpƎℲפHIſʞ˥WNOԀΌɹS┴∩ΛMX⅄Z0ƖᄅƐㄣϛ9ㄥ86 ¿¡˙-)(><%$,':‾\\/")
>>> 'The quick brown fox jumps over the lazy dog, 42 times!'.translate(transmap)
"┴ɥǝ bnᴉɔʞ qɹoʍu ɟox ɾnɯds oʌǝɹ ʇɥǝ ˥ɐzʎ poƃ' ㄣᄅ ʇᴉɯǝs¡"
您可能也希望反转结果;您可以使用[::-1]
切片:
>>> 'The quick brown fox jumps over the lazy dog, 42 times!'.translate(transmap)[::-1]
"¡sǝɯᴉʇ ᄅㄣ 'ƃop ʎzɐ˥ ǝɥʇ ɹǝʌo sdɯnɾ xoɟ uʍoɹq ʞɔᴉnb ǝɥ┴"