我认为我有正确的想法来解决这个问题,但我不确定为什么我没有得到理想的结果。有人可以帮我解决这个问题吗?
>>>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
答案 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]