在对象列表中找到最长的最短属性

时间:2014-04-16 09:52:32

标签: python min

如果您有一个对象列表,每个对象都包含一个包含随机长度数组的特定属性。有没有一种简单的方法来查找最短属性的长度?

我知道如果它是一个字符串列表我可以使用以下内容。

min(alist, key=len)

有没有办法可以编辑它来按列表中的对象属性进行搜索?

3 个答案:

答案 0 :(得分:3)

我愿意,您可以使用lambda

访问它
lowest = min(alist, key=lambda o: len(o.attr_name))

将按该属性对项目进行排序。

答案 1 :(得分:0)

您可以按如下方式使用sorted

new_list = min(your_list, key=lambda x: len(x.nums))

实施例

from random import randint

class thing():
    def __init__(self):
        self.nums = [0]*randint(5,15)

obj_list = [thing() for _ in range(10)]

new_list = min(obj_list, key=lambda x: len(x.nums))

答案 2 :(得分:0)

您可以使用列表推导作为lambda解决方案的替代方法:

min((len(obj.attr) for obj in obj_list))