相关疑难解决方法(0)

列表理解与lambda +过滤器

我碰巧发现自己有一个基本的过滤需求:我有一个列表,我必须通过项目的属性过滤它.

我的代码看起来像这样:

my_list = [x for x in my_list if x.attribute == value]
Run Code Online (Sandbox Code Playgroud)

但后来我想,这样写它会不会更好?

my_list = filter(lambda x: x.attribute == value, my_list)
Run Code Online (Sandbox Code Playgroud)

它更具可读性,如果需要性能,可以取出lambda来获得一些东西.

问题是:使用第二种方式有什么警告吗?任何性能差异?我是否完全错过了Pythonic Way™并且应该以另一种方式(例如使用itemgetter而不是lambda)来完成它?

python lambda functional-programming list filter

793
推荐指数
12
解决办法
65万
查看次数

如何找到两个列表之间的公用子列表?

如果子列表也存在于另一个列表中,您如何查找或仅保留列表的子列表?

lsta = [['a','b','c'],['c','d','e'],['e','f','g']]
lstb = [['a','b','c'],['d','d','e'],['e','f','g']]
Run Code Online (Sandbox Code Playgroud)

我想做类似set(lsta)和set(lstb)的事情

Desired_List = [['a','b','c'],['e','f','g']]
Run Code Online (Sandbox Code Playgroud)

我之所以想执行set之类的原因是因为它的速度,因为我在非常重要的大型列表中执行此操作。

另外,稍微不相关,如果我想从lsta中减去lstb以得到

Desired_List2 = [['d','d','e']]
Run Code Online (Sandbox Code Playgroud)

python list set sublist

3
推荐指数
1
解决办法
663
查看次数

标签 统计

list ×2

python ×2

filter ×1

functional-programming ×1

lambda ×1

set ×1

sublist ×1