gpt4 book ai didi

python - 过滤返回属性的对象

转载 作者:行者123 更新时间:2023-12-05 01:20:35 24 4
gpt4 key购买 nike

我正在尝试过滤返回特定属性列表的对象。看看我尝试了什么:

class Foo:
def __init__(self,a,b):
self.a = a
self.b = b

x = Foo(1,2)
y = Foo(1,3)
z = Foo(2,4)
result = filter(lambda f: f.b if f.a == 1 else None, [x,y,z])
print(list(result))

我期待一个像这样的列表 [2, 3],但它返回给我一个 foo 对象的列表。有没有办法只使用 filter 其他功能来做到这一点?例如,我想避免使用 mapfilter

最佳答案

你可以使用列表理解

result = [i.b for i in [x,y,z] if i.a == 1]

使用 filter 需要两个步骤:第一步过滤掉 i.a != 1 的对象,第二步提取 .b 从每个对象中提取出来(这需要 map)。

关于python - 过滤返回属性的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31834374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com