-1

これは私のコードが何をする必要があるかの例です:

encrypt('7521068493', '123')
# returns '521'

最初の文字列は、 is 、is 、is 、is0-9などを置き換えるキーです。70512213

2 番目の文字列は、暗号化する必要がある文字列です。

これが私のコードです:

def encrypt(key, string):
    for i in range(len(key)):
        string in i
            print(string)

私はそれを把握することはできません

4

2 に答える 2

1
def encrypt(key, msg):
    cypher = {x: y for x, y in zip('0123456789', key)}
    encrypted = []
    for c in msg:
        encrypted.append(cypher[c])
    return ''.join(encrypted)
于 2013-03-27T02:05:13.450 に答える
0

@ピーターのソリューションが好きです。リストを作成しないことでメモリを節約できencrypted、各ループに追加しないことで時間を節約できます。

def encrypt(key, msg):
    cypher = {x: y for x, y in zip('0123456789', key)}
    return ''.join(cypher[c] for c in msg) 

リストまたはジェネレーターを引数として取るものは、リスト自体の代わりに、引数として「ジェネレーター内包表記」と呼ばれるものを渡すことができます。これにより、そのリストを個別に作成する必要がなくなり、多くの人が読みやすいことに同意します. これは主に、msgが長い場合にのみパフォーマンスに役立ちます。

于 2013-03-27T02:16:56.920 に答える