很多线程已经在讨论返回列表列表中的最长列表
max(sorted(lst_of_lsts, key = len))
但如果lst_of_lsts是一个空列表,这就会喷出。
max(sorted(lst_of_lsts, key = len)) ValueError: max() arg is an empty sequence
是否有支持空列表的版本? 它将返回一个空列表。
谢谢
您可以按[[]]
添加列表:
max(lst_of_lsts + [[]], key = len)
首先,您的原件不正确。 max
不需要排序参数,即使你对它进行了排序,你仍然需要key
传递给max
。下面是一个示例,说明如果不这样做会发生什么情况:https://ideone.com/TMJyGK。
我能想到的最简单的事情就是检查你的列表是否为空:
max(lst_of_lst if lst_of_lst else [[]], key=len)
或
max(lst_of_lst, key=len) if lst_of_lst else []
你想要这样的东西吗?
lst_of_lsts = [[], []]
lst = sorted(lst_of_lsts, key = len)[0]
if lst:
print(max(lst))
else:
print() #whatever