如果您有一个对象列表,每个对象都包含一个包含随机长度数组的特定属性。有没有一种简单的方法来查找最短属性的长度?
我知道如果它是一个字符串列表我可以使用以下内容。
min(alist, key=len)
有没有办法可以编辑它来按列表中的对象属性进行搜索?
答案 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))