【问题标题】:Python Map function, can I iterate functions, not input? [closed]Python Map函数,我可以迭代函数,而不是输入吗? [关闭]
【发布时间】:2020-10-21 05:04:03
【问题描述】:

我正在研究 Python 的 lambda 函数。 我有一个函数列表,比如 fs,还有一个常数,比如 c。 我需要使用输入 c 迭代 fs,而不使用 for 或 while 循环,并将所有结果存储在一个列表中。地图功能可以做到这一点吗?我相信只有输入可以迭代。有没有其他巧妙的办法?

【问题讨论】:

  • 为问题添加更多相关细节
  • map(lambda f: f(c), fs)?
  • 请从intro tour 重复on topichow to ask。 “告诉我如何解决这个编码问题?”与 Stack Overflow 无关。您必须诚实地尝试解决方案,然后就您的实施提出具体问题。 Stack Overflow 并不打算取代现有的教程和文档。查看map 上的文档并尝试将其应用于您的情况。
  • 谢谢,我正在为作业做这件事,所以我想我不能添加细节。我尝试了 map(lambda f: f(c), fs),但 c 在函数中没有解析。我正在嵌套 lambda 函数,并且 c 被声明为外部 lambda 函数。所以我认为它应该在范围内,但不知何故它不起作用。
  • 那么我们需要详细信息,因为一般情况下这肯定会起作用。

标签: python loops dictionary lambda


【解决方案1】:

地图功能可以做到吗?

是的。

results = list(map(lambda f: f(c), fs))

但是使用列表理解会更容易:

results = [f(c) for f in fs]

【讨论】:

  • 谢谢。我不允许使用循环,所以我选择第一个......实际上我正在嵌套 lambda 函数,而 c 在 (lambda f: f(c)) 中没有解析。 ..
  • @Max 好吧,列表推导并不是真正的循环,即使 for 出现在其中。但是map() 也可以。
  • 好的,我尝试了 map(lambda f: f(c), fs),但是 c 无法解析我正在嵌套 lambda 函数并且 c 被声明为外部 lambda 函数。所以我认为它应该在范围内,但不知何故它不起作用。
  • @Max 很难在没有看到您的代码的情况下判断。正如其他人所说,您需要为您的问题添加更多上下文。
  • 你是对的。还是谢谢你!
猜你喜欢
  • 2013-05-20
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
  • 2020-10-10
  • 1970-01-01
相关资源
最近更新 更多