如何将函数返回来的两个参数map到一个接受两个参数的函数

发布于 2022-08-28 11:05:28 字数 902 浏览 13 评论 0

多个参数应该同理。
Python,
一个函数叫做iter_list,每次yield列表中的两项,如果列表是单数项的,返回的是最后一项和一个空列表,其实我就是在练习写归并排序。。
一个函数叫做merge_two_list(list1, list2),接受两个参数。。。

list_splited=range(100)
temp = []
# for i, j in iter_list(list_splited):
#     temp.append(merge_two_list(i, j))
temp = map(merge_two_list, iter_list(list_splited))#Why can't map?

#注释掉的那段就可以工作,当然注释这段还可以写成:

for i in iter_list(list_splited):
     temp.append(merge_two_list(*i))

stackverflow上介绍了当两个参数有一个为固定的时候的做法。。
http://stackoverflow.com/questions/10834960/how-to-do-multiple-arguments-to-map-function-where-one-remains-the-same-in-pytho
显然他可以使用functools.partial。。或者itertool.repeat。。。但是我这种情况不给力啊。。

强行使用map是希望往后可以多进程map。。。。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

少女的英雄梦 2022-09-04 11:05:28

额。。。自己解决了一个方案:

map(lambda x: merge_two_list(*x), iter_list(list_splited))

不知所踪 2022-09-04 11:05:28

想简单点直接列表推断吧,不然利用numpy的序列化函数,numpy.vectorize 将函数变成序列化对象,这对于多个参数的函数的表现与map不同,就你这个问题是可行的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文