-1

这是我的代码需要做的一个例子:

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

第一个字符串是替换的键,0-9例如7is 0, 5is 1, 2is 2, 1is 3, 等等。

第二个字符串是需要加密的字符串。

这是我的代码:

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

我喜欢@Peter 的解决方案。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 回答