从两个列表中解密代码

时间:2017-12-08 05:02:10

标签: python

我认为我有正确的想法来解决这个问题,但我不确定为什么我没有得到理想的结果。有人可以帮我解决这个问题吗?

>>>decrypt(['a', '2', 's', 'c', '0'], [3, 2, 3, 0, 1, 4])

My output: [0, 1, 2, 3, 4]


>>>decrypt(['a', '2', 's', 'c', '0'], [3, 2, 3, 0, 1, 4])

Desired Output: ['c', 's', 'c', 'a', '2', '0']


def decrypt(characters, code):
    L = []
    for item in range(len(characters)):
        result = characters[item]
        answer = code.index(item)
        L.append(item)
    return L 

2 个答案:

答案 0 :(得分:1)

如果你想要字符 - 源代码 - 从源代码获取字符

def decrypt(characters, code):
    L = []
    for item in range(len(code)):
        result = code[item]
        L.append(characters[result])
    return L 

print(decrypt(['a', '2', 's', 'c', '0'], [3, 2, 3, 0, 1, 4]))

答案 1 :(得分:1)

正在进行的是item变量是0,1,2,3,4列表的数量code ...的数量。相反,您应该通过执行code而不是in code:来迭代组成in range(...的整数。这样,item是列表中每个项目的代码值,它们是您希望从characters中获得的索引。

def decrypt(characters, code):
    L = []
    for item in code:
        result = characters[item]
        L.append(result)
    return L

print(decrypt(['a', '2', 's', 'c', '0'], [3, 2, 3, 0, 1, 4]))

这也可以通过列表理解来完成:

def decrypt(characters,code):
    return [characters[i] for i in code]