当前位置: 首页 > 面试题库 >

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

魏鹤轩
2023-03-14
问题内容

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

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)

问题答案:

您可以使用内置函数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中使用将更有意义,因为迭代器会更快。



 类似资料:
  • 问题内容: 如何将函数应用于变量输入列表?例如,函数返回真值,但不返回函数的实际输出。 预期的输出是: 我知道是内置的。这只是一个例子。 问题答案: 我认为您的意思是使用而不是: 更简单的是,您可以使用而不是从中导入(感谢@alecxe): 在Python 2.x中,通过将给定函数应用于列表中的每个元素来构造新列表。通过限制使用给定函数求值的元素来构造新列表。 在Python 3.x中,和构建迭代

  • 假设我有这个命令代码: 我该如何以函数式的方式写这篇文章(就像fold在Scala中做的那样)?

  • 我从这个URL刮取了这个表: "https://www.patriotsoftware.com/blog/accounting/average-cost-living-by-state/" 看起来像这样: 然后我编写了这个函数来帮助我将字符串转换成整数: 当我只将函数应用于一列时,它就会工作。我在这里找到了关于在多个列上使用的答案:如何将函数应用于多个列 但我下面的代码不起作用,也不会产生错误:

  • 在执行时,是否有一种方法可以将聚合函数应用于dataframe的所有列(或列表)?换句话说,是否有一种方法可以避免对每个列都这样做:

  • 给定列表list1=[[1,2,3],[4,5,6]],为了返回[['1','2','3'],['4','5,'6']],我尝试了以下操作: 这对列表不起作用:它不改变输出list1。我认为它可以通过重新分配来工作,类似于循环中的a[0][0]=str(a[0][0])(它确实起作用)。当然,上面的for循环不会这样做。 我还尝试了“地图”,如 这也与清单1完全无关。 我正在试图改变原来的名单,这

  • 问题内容: 我有一个数组列表,我想获取数组中元素的笛卡尔积。 我将使用一个示例来使其更加具体… itertools.product似乎可以解决问题,但我只保留了一些细节。 如果我做 我懂了 但是我想要得到的是 我尝试了几种不同的方法: 他们都让我 CP0 代替 CP1 。 有任何想法吗? 提前致谢。 问题答案: 这会将所有对作为单独的参数提供给,然后为您提供它们的笛卡尔积。 您的版本无法正常运行的