有没有一种方法可以编写只能选择字符串数组中某些元素的lambda函数?

时间:2020-03-17 21:39:17

标签: python arrays string lambda

例如,给定数组a = [“一个”,“两个”,“三个”,“四个”],我可以使用像这样的lambda函数将其全部打印出来

background-image: url("../../assets/img/misc/wave.png");

但是如果我只想输出偶数索引,我可以使用类似的方法解决它

print((lambda x:x)(a))

我的输出

print([x for i,x in enumerate(a) if i%2==0])

但是如何使用lambda函数获得相同的输出?

2 个答案:

答案 0 :(得分:-1)

尝试一下:

result = list(filter(lambda x: (x == "one" or x =="three"), my_list))
print(result)

基本上,filter函数过滤掉在lambda中返回false的列表中的所有项目,因此您可以通过替换第二部分来过滤掉所有内容。

答案 1 :(得分:-1)

您可以使用operator.itemgetter解决此问题。

>>> a = ["one", "two", "three", "four"]
>>> from operator import itemgetter
>>> itemgetter(0, 2)(a)
("one", "three")

itemgetter是考虑将lambda表达式从Python 3000(该语言最终以Python 3发行)中删除时引入的功能之一。旨在取代像

这样的表达式中对lambda的需求
>>> (lambda x: (x[0], x[2]))(a)
("one", "three")

同时效率也更高。