我有一个列表 (decrypted_list
),其中包含我必须解密的四个整数元素。该函数的工作是解密代码,它的逻辑是正确的。定义函数后,我想在 decrypted_list
的每个元素上调用它来解密其元素。
encrypted_list = [7, 1, 0, 2]
def decrypter(number):
for number in encrypted_list:
if (number + 4) < 10:
return (number + 4)
elif (number + 4) > 10:
return (number + 4) % 10
decrypted_list = [decrypter(x) for x in encrypted_list]
但是,输出不是我所期望的:
预期: [1, 5, 4, 6]
实际值: [1, 1, 1, 1]
求助!我是 Python 的新手。 :)
最佳答案
在 decrypter
函数中循环遍历 encrypted_list
是没有意义的。此函数应该只查看 number
参数 - 它不需要了解 encrypted_list
变量。
循环操作本身应该只发生在你的列表理解中([decrypter(x) for x in encrypted_list]
)。
将您的功能更改为以下内容,您应该没问题:
def decrypter(number):
if (number + 4) < 10:
return (number + 4)
elif (number + 4) > 10:
return (number + 4) % 10
关于python - 对列表的每个元素使用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58572153/