python - 对列表的每个元素使用一个函数

标签 python list function

我有一个列表 (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/

相关文章:

python - 正在读取<内容:encoded> tags using BeautifulSoup 4

python - 如何让 pytest 等待(手动)用户操作?

c# - 获取文件信息列表中的文件名列表

javascript - 我的递归函数(javascript)总是返回 false,即使它是 true

Python:难以理解双前置函数

python - 在 Pyramid 框架中实现 Sqlalchemy 烧杯缓存

Python tkinter 按钮回调意外行为

css - 删除缩进多层有序列表

java - while循环逻辑缺陷

python - 传递 global 作为引用