2013-05-10 92 views
0

我想將單個整數輸入轉換爲多個整數輸出,並且當前正在使用transtab函數。例如,Python中的單整數到多個整數轉換

intab3 = "abcdefg" 
outtab3 = "ABCDEFG" 
trantab3 = maketrans(intab3, outtab3) 

是我正在做的最基本的版本。我希望能夠做的是將輸入作爲單個字母,輸出爲多個字母。所以像這樣:

intab4 = "abc" 
outtab = "yes,no,maybe" 

但逗號和引號不起作用。 口口聲聲說:

ValueError: maketrans arguments must have same length

是否有更好的功能,我應該使用?謝謝,

回答

1

你可以在這裏使用的字典:

>>> dic = {"a":"yes", "b":"no", "c":"maybe"} 
>>> strs = "abcd" 
>>> "".join(dic.get(x,x) for x in strs) 
'yesnomaybed' 
1

在python3中,str.translate方法進行了改進,以便這只是工作。

>>> intab4 = "abc" 
>>> outtab = "yes,no,maybe" 
>>> d = {ord(k): v for k, v in zip(intab4, outtab.split(','))} 
>>> print(d) 
{97: 'yes', 98: 'no', 99: 'maybe'} 
>>> 'abcdefg'.translate(d) 
'yesnomaybedefg'