如何在python中将函数应用于列表的每个子列表?

发布于 2021-01-29 18:33:24

可以说我有一个这样的列表:

list_of_lists = [['how to apply'],['a function'],['to each list?']]

我有一个函数,假设我想将该F函数应用于该函数的每个子列表,F可以计算出有关两个列表的一些分数。如何将此F功能应用于的每个列表list_of_lists并在新列表中返回每个分数,如下所示:

new_list = [score_1, score_2, score_3]

我尝试使用以下map功能:

map(F, list_of_lists).append(new_list)
关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用内置函数map来执行此操作。

    因此,如果您要应用的函数是len,则可以执行以下操作:

    >>> list_of_lists = [['how to apply'],['a function'],['to each list?']]
    >>> map(len, list_of_lists)
    [1, 1, 1]
    

    在中Python3,上面返回了一个地图迭代器,因此您需要一个显式list调用:

    >>> map(len, list_of_lists)
    <map object at 0x7f1faf5da208>
    >>> list(map(len, list_of_lists))
    [1, 1, 1]
    

    如果您要为此编写一些必须在Python2和Python3中都兼容的代码,则列表推导方法是可行的。就像是:

    [apply_function(item) for item in list_of_lists]
    

    无需任何更改即可在Python 2和3中使用。

    但是,如果您输入的list_of_lists很大,则map在Python3中使用将更有意义,因为迭代器会更快。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看