如果你看一下urllib.quote文件,有些东西和你现在做的很相似。它看起来像:
_map = {}
def phred64ToStdqual2(qualin):
if not _map:
for i in range(31, 127):
_map[chr(i)] = chr(i - 31)
return ''.join(map(_map.__getitem__, qualin))
请注意,如果映射的长度不相同(在urllib.quote文件,必须取“%”->“%25”。
但实际上,由于每个翻译都是相同的长度,python有一个函数可以非常快速地完成:
maketrans
translate
import string
_trans = None
def phred64ToStdqual4(qualin):
global _trans
if not _trans:
_trans = string.maketrans(''.join(chr(i) for i in range(31, 127)), ''.join(chr(i) for i in range(127 - 31)))
return qualin.translate(_trans)