我正在尝试对 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 中阅读有关排序列表的更多信息帖子,非常有趣。
