如何将函数应用于变量输入列表?例如,filter函数返回真值,但不返回函数的实际输出。
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是内置的。这只是一个例子。
upper
我认为您的意思是使用map而不是filter:
map
>>> from string import upper >>> mylis=['this is test', 'another test'] >>> map(upper, mylis) ['THIS IS TEST', 'ANOTHER TEST']
更简单的是,您可以使用str.upper而不是从中导入string(感谢@alecxe):
str.upper
string
>>> map(str.upper, mylis) ['THIS IS TEST', 'ANOTHER TEST']
在Python 2.x中,map通过将给定函数应用于列表中的每个元素来构造新列表。filter通过限制True使用给定函数求值的元素来构造新列表。
True
在Python 3.x中,map和filter构建迭代器,而非列表,所以如果你使用Python 3.x和要求的清单列表解析的方法会更适合。