取代密钥'01234'并以索引(数字)的顺序替换它们的替换密码

时间:2012-05-17 18:35:35

标签: python python-3.x

我不确定如何让'key'和'num'一起工作以获得最终答案。 我正在考虑使用.replace [],但坦率地说,我不太了解这种类型的代码。

示例:

encrypt('3924056871', '445566')

应该返回'005566'

def encrypt(key, num):
   lst=[]
   for i in key:
     for i in num: 

2 个答案:

答案 0 :(得分:1)

以下是两种方式。

1:使用内置translatemaketrans

from string import maketrans
def encrypt1(key, numstr):
    trans = maketrans('0123456789', key)
    return numstr.translate(trans)

2:手动:

def encrypt2(key, numstr):
    res = ""
    for ch in numstr:
        res += key[ord(ch) - ord('0')]
    return res

答案 1 :(得分:0)

假设key有10个字符,而plain_text只有数字

def enc(key, plain_text):
    """
    >>> enc('3921056784', '445566')
    '005566'
    """
    return ''.join([key[int(x)] for x in plain_text])