小编典典

将函数应用于列表的每个元素

python

如何将函数应用于变量输入列表?例如,filter函数返回真值,但不返回函数的实际输出。

from string import upper
mylis=['this is test', 'another test']

filter(upper, mylis)
['this is test', 'another test']

预期的输出是:

['THIS IS TEST', 'ANOTHER TEST']

我知道upper是内置的。这只是一个例子。


阅读 215

收藏
2020-12-20

共1个答案

小编典典

我认为您的意思是使用map而不是filter

>>> from string import upper
>>> mylis=['this is test', 'another test']
>>> map(upper, mylis)
['THIS IS TEST', 'ANOTHER TEST']

更简单的是,您可以使用str.upper而不是从中导入string(感谢@alecxe):

>>> map(str.upper, mylis)
['THIS IS TEST', 'ANOTHER TEST']

在Python
2.x中,map通过将给定函数应用于列表中的每个元素来构造新列表。filter通过限制True使用给定函数求值的元素来构造新列表。

在Python 3.x中,mapfilter构建迭代器,而非列表,所以如果你使用Python 3.x和要求的清单列表解析的方法会更适合。

2020-12-20