0

単一の整数入力を複数の整数出力に変換しようとしており、現在 transtab 関数を使用しています。例えば、

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

私がやっていることの最も基本的なバージョンです。私ができるようにしたいのは、入力を1文字にし、出力を複数文字にすることです。次のようなものです:

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

ただし、コンマと引用符は機能しません。それは言い続けます:

ValueError: maketrans 引数は同じ長さでなければなりません

私が使用すべきより良い機能はありますか?ありがとう、

4

2 に答える 2

1

ここでdictを使用できます:

>>> dic = {"a":"yes", "b":"no", "c":"maybe"}
>>> strs = "abcd"
>>> "".join(dic.get(x,x) for x in strs)
'yesnomaybed'
于 2013-05-10T02:46:40.717 に答える
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'
于 2013-05-10T02:56:17.233 に答える