0

ある配列の要素を別の配列に置き換えるだけで、単純な暗号化/復号化プログラムをPythonで作成するのに問題があります。暗号化する必要がある配列と、最初の要素が a に相当し、最後の要素が z に相当するキーの 2 つの配列があります。

最初の配列の a のすべてのインスタンスをキー [0] などにする必要があると想定していますが、コードを記述する方法がわかりません。いくつかのヒントやガイダンスをいただければ幸いです。

ライブラリをインポートできないことに注意してください。また、辞書についても教えられていません。

フォローアップの質問ですが、関連する質問です。リスト内の同じ値のすべての要素を置き換えるにはどうすればよいですか。つまり、テキスト リストのすべての 'a' 値をキー リストの最初の値に置き換えるにはどうすればよいでしょうか。

for c in text:        
    if c == 'a':
        c = key[0]            

エラーが表示されます:「関数」オブジェクトは添字可能ではありません

4

2 に答える 2

0

もっと簡単な方法は次のようになると思います。

def encrypt(iterable,encryption_dictionary):
    itertype = type(iterable)
    return itertype(''.join((encryption_dictionary[i] for i in iterable)))

暗号化辞書を作成するには、次を使用できます

{key1:mappedvalue1,key2:mappedvalue2}

以下同様に、:はペアを示し、「、」はペア間を区切ります。

于 2012-05-12T05:39:38.503 に答える
0

最初にキーをdictに変換してから、単純なリスト置換を使用できます

key = {chr(ord('a')+i): e for i, e in enumerate(key)}
encrypted = [key[e] for e in unencrypted]

代わりに

encrypted = [key[ord(e) - ord('a')] for e in unencrypted]
于 2012-05-12T03:42:30.500 に答える