【问题标题】:How to extract from a list of objects a list of specific attribute?如何从对象列表中提取特定属性的列表?
【发布时间】:2010-10-15 05:27:33
【问题描述】:

我有一个对象列表。对象有 3 个字符串属性。我想制作一个仅包含类中特定属性的列表。

有没有内置函数可以做到这一点?

【问题讨论】:

    标签: python


    【解决方案1】:

    假设您想要字段 b 用于名为 objects 的列表中的对象,请执行以下操作:

    [o.b for o in objects]
    

    【讨论】:

      【解决方案2】:

      我想到的第一件事:

      attrList = map(lambda x: x.attr, objectList)
      

      【讨论】:

        【解决方案3】:

        你在寻找这样的东西吗?

        [o.specific_attr for o in objects]
        

        【讨论】:

          【解决方案4】:

          列表推导可以正常工作:

          [o.my_attr for o in my_list]
          

          但是有一个内置函数的组合,因为你问:-)

          from operator import attrgetter
          map(attrgetter('my_attr'), my_list)
          

          【讨论】:

          • 如果您需要导入,那不是内置的。 ;) docs.python.org/library/functions.html
          • 我恳求细微差别:“内置”!=“builtins'。嗯,这就是我的故事,我会坚持下去,警官。:-)跨度>
          • 以及如何从这个类中检索 2 个(或更多)属性?
          • 我在寻找o["myattr"],您可能会从对象结构中推断出它。这是正确的方法。
          猜你喜欢
          • 1970-01-01
          • 2011-02-13
          • 2015-12-31
          • 1970-01-01
          • 2016-07-12
          • 2015-07-13
          • 1970-01-01
          • 2012-11-12
          相关资源
          最近更新 更多