python - 如何在 Python 中的 map 中编写指令?
问题描述
输入是一个列表:["asdf", "ghjk", "lmnop", "zyx"]。
我特别需要对列表的所有元素应用一个函数(所以,我应该使用 map)。该函数应该执行类似 f(x, k) = x + k 的操作,其中 k 是一个等于 1 的常数,x 是一个计数器(因此,x 一开始将为 0,当逐渐迭代列表时,它应该以某种方式增加,但如何增加?)。
假设这些,预期的输出应该是:[1,2,3,4]。
from functools import partial
def f(x, k):
return x + k
def with_partial(my_list, k=1):
func = partial(f, k=k) # partial object which acts as a function when called
x = 0 # counter
# map -> applies a funciton over all elements of my_list
rez = list(map(lambda it: (func(x)), my_list))
# if I want to increment it, it should look like: rez = list(map(lambda it: x = (func(x)), my_list))
print("Result with partial: " + str(rez))
if __name__ == "__main__":
with_partial([5, 6, 7])
with_partial(["asdf", "ghjk", "lmnop", "zyx"])
但输出是:
Result with partial: [1, 1, 1]
Result with partial: [1, 1, 1, 1]
但我希望它是这样的:
Result with partial: [1, 2, 3]
Result with partial: [1, 2, 3, 4]
对于这类问题,我可以很容易地使用列表推导,但我需要了解如何在 map 中编写指令,以便有效地增加计数器。或者...关于部分函数有什么我应该知道的,但我不知道吗?如何使用函数式编程解决此类问题?
解决方案
推荐阅读
- javascript - 获取 Shopify API 脚本标签的 Shopify 商店名称的最可靠方法?
- amazon-web-services - 更改 IAM 用户密钥时如何更新 Elastic Beanstalk 环境变量中的 AWS 凭证?
- html - 带有背景图像的 CSS 网格 50% 分割宽度单元格不适合屏幕
- dart - 如何保持汉堡图标没有可见的appBar颤动
- php - 尝试执行 PayPal 付款请求时出现 HTTP 400 错误。(file_get_contents)
- laravel - 验证短信寄存器中的控制器
- reactjs - 如果用户转到 React 上的非公共 url,我如何重定向?
- mapquest - 将地图的缩放级别设置为特定的邮政编码
- php - 如何通过 PHP 中的 post 发送不在文本框中的数据
- unicode - 角色扩展如何在幕后工作?