gpt4 book ai didi

Python,过滤对象列表,但返回特定属性?

转载 作者:太空狗 更新时间:2023-10-30 01:49:16 24 4
gpt4 key购买 nike

假设我有一个 Person 对象列表,其中有一个 age 和 room_number 属性,我写了一个 check() 函数,它返回 True,如果 person.age() 和 person.room_number() 令人满意,则返回 False否则。

filter(check, list_of_people_objects) 将返回满足 check() 条件的 Person 对象列表

但是,我的问题是,有没有一种方法可以返回每个已批准人员的房间号的列表,而无需遍历列表两次,就像不使用列表理解一样?所以过滤,但返回可迭代的更具体的属性。

map(lambda x: x.room_number(), filter(check, list_of_people_objects))

最佳答案

实际上有两种方式。

  1. itertools

    map(..., itertools.ifilter(..))
  2. 列表理解

    [x.room_number() for x in people if check(x)]

您选择哪种主要取决于品味,但惯例倾向于后者。

关于Python,过滤对象列表,但返回特定属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11966937/

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