1

私はPythonにはかなり慣れていないので、明らかな組み込み関数が欠けている場合はご容赦ください。

次のように生成した辞書マッピングがあります。

dictionary = dict(zip(restAlphaSet,list(item)))

ここで、restAlphaSet は文字列であり、list(item) はリスト変換された反復です

これを使用して、文字列内のすべての文字を置き換えようとしています。次のような replaceAll 関数をオンラインで見つけました。

def replace_all(text, dic):
for i, j in dic.iteritems():
    if i != j:
        text = text.replace(i, j)
return text

残念ながら、マッピングに a->b、b->a がある場合、b が a に戻されるため、何も変更されないため、これには欠陥があります。

翻訳機能を見つけましたが、辞書入力を受け付けません。

4

3 に答える 3

6

翻訳ははるかに高速です。

>>> import string
>>> text.translate(string.maketrans("".join(restAlphaSet),"".join(item)))
于 2012-04-14T17:36:57.663 に答える
4

翻訳機能を見落としています。使用例はこちらをご覧ください。

于 2012-04-14T17:36:34.937 に答える
-3

a->b古い質問だと思いますが、との両方のマッピングを使用した辞書を使用した回答はなかったようb->aです。

私は同様の関数を必要としていました.仕事をしたトリックは、最初に置換が必要な文字列を反復処理し、次に各文字についてマッピングを探すことでした.

def replace_all(text, dic):
    new_text = ""
    for char in text:
        for i, j in dic.iteritems():
            if char == i:
                new_text += j
return new_text
于 2015-11-01T00:24:36.713 に答える