在Python中转换字符

时间:2010-12-24 20:23:34

标签: python

mir = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',  'r', 't', 'u', 'v', 'x', 'y']

keq = ['.', 'c', 'z', 's', 'e', 'd', 'f', 'g', 'i', 'h', 'j', 'k', 'b', 'v', 'o', 'p', 'q', 'r', 't', 'u', 'x', ''\'', 'y']

我想知道keq中是否按下raw_input('write text: ')中的任何字符  将它们转换为mir

中显示的字符

有人可以帮我这么做......如果你能写出所有的代码,它会对我有所帮助

3 个答案:

答案 0 :(得分:3)

1。您可以使用maketranstranslate methods为字符构建转换表,例如

>>> import string
>>> tb = string.maketrans('abc', '123')
>>> 'cyan banana'.translate(tb)
'3y1n 21n1n1'

2. 您可以使用''.join method连接数组中的所有字符串,例如

>>> arr = ['a', 'b', 'c']
>>> ''.join(arr)
'abc'

这些应足以解决您的问题。

答案 1 :(得分:1)

mir = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 't', 'u', 'v', 'x', 'y']
keq = ['.', 'c', 'z', 's', 'e', 'd', 'f', 'g', 'i', 'h', 'j', 'k', 'b', 'v', 'o', 'p', 'q', 'r', 't', 'u', 'x', '\\', 'y']
trans = dict(zip(mir,keq))

myStr = raw_input()
print ''.join([trans.has_key(ch) and trans[ch] or ch for ch in myStr])

答案 2 :(得分:0)

为转换创建字典...

{
 'a' : '.',
 'b' : 'c',
  ...

然后使用map遍历您的输入,用值替换键。