Python 有没有一种方法可以编写一个lambda函数,只选择字符串数组中的一些元素?
例如,给定数组a=[1,2,3,4],我可以使用如下lambda函数打印所有数组Python 有没有一种方法可以编写一个lambda函数,只选择字符串数组中的一些元素?,python,arrays,string,lambda,Python,Arrays,String,Lambda,例如,给定数组a=[1,2,3,4],我可以使用如下lambda函数打印所有数组 print((lambda x:x)(a)) print([x for i,x in enumerate(a) if i%2==0]) 但是如果我只想输出偶数索引,我可以使用类似这样的方法来解决它 print((lambda x:x)(a)) print([x for i,x in enumerate(a) if i%2==0]) 我的输出 ["one","three"] 但是,如何使用lambda函数获
print((lambda x:x)(a))
print([x for i,x in enumerate(a) if i%2==0])
但是如果我只想输出偶数索引,我可以使用类似这样的方法来解决它
print((lambda x:x)(a))
print([x for i,x in enumerate(a) if i%2==0])
我的输出
["one","three"]
但是,如何使用lambda函数获得相同的输出?尝试以下方法:
result = list(filter(lambda x: (x == "one" or x =="three"), my_list))
print(result)
基本上,filter函数过滤掉lambda中返回false的列表中的所有项,因此您可以通过替换第二部分来过滤掉任何内容 您可以使用operator.itemgetter解决此问题
itemgetter是在考虑将lambda表达式从Python 3000(最终作为Python 3发布的语言)中删除时引入的函数之一。它的目的是取代lambda在表达式中的需要,如
>>> (lambda x: (x[0], x[2]))(a)
("one", "three")
同时效率也稍高。任何Python函数都可以写成lambda,因此您的问题的答案是yes@DaveKielpinski在Church Turing假设的意义上,是的,但将许多Python函数重新编写为lambda表达式会使它们无法识别。@chepner这不是问题,尽管如此。你的评论毫无意义。我重写了这个问题,说明了我想做什么。任何人