Skip to main content
 首页 » 编程设计

python之了解 lambda 在 python 中的排序功能

2025年05月04日14freeliver54

我正在尝试对 python 中的列表列表进行排序。我写了下面的代码:

def sort(intervals): 
    if intervals == [] : return []   
    intervals.sort(key = lambda x:x.start) 
    return intervals 
 
a = [[1,3],[8,10],[15,18],[2,6]] 
print(sort(a)) 

我收到以下错误:

AttributeError: 'list' object has no attribute 'start' 

请有人解释一下用于排序的 lambda 函数以及有关上述错误的一些细节。谢谢你!!

请您参考如下方法:

您的错误消息的原因是您正在排序基于不是list 的属性(start 不是list') 的 attribute,所以快速修复是使用 list 的 sort 方法或使用内置方法sorted:

1 - 使用 list 的 sort 方法:

intervals.sort(key = lambda l:l[0]) 

2 - 使用内置方法 sorted:

intervals = sorted(intervals, key=lambda l:l[0]) 

在此 wiki 中阅读有关排序列表的更多信息帖子,非常有趣。