这是我的代码需要做的一个例子:
encrypt('7521068493', '123')
# returns '521'
第一个字符串是替换0-9
的键,例如7
为0
,5
为1
,2
为{{ 1}},2
是1
,依此类推。
第二个字符串是需要加密的字符串。
这是我的代码:
3
我无法弄清楚
答案 0 :(得分: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)
答案 1 :(得分: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
很长时才会有效。