如何在我的程序生成的某些列表中找到最小的列表?

时间:2019-02-11 01:33:14

标签: python

我编写了一个程序,该程序生成一些列表,例如

['a0', 'a1', 'a2', 'a3', 'a3', 'a4', 'C', 'b4', 'b3', 'b2', 'b2', 'b3', 'b4', 'b5', 'b5', 'b4', 'D', 'c4']
['a0', 'a1', 'a2', 'a3', 'a3', 'a4', 'C', 'b4', 'b3', 'b2', 'b2', 'b3', 'b4', 'D', 'c4', 'c4', 'D', 'b4', 'b5']
['a0', 'a1', 'a2', 'a3', 'a3', 'a4', 'C', 'b4', 'b5', 'b5', 'b4', 'b3', 'b2', 'b2', 'b3', 'b4', 'D', 'c4']
['a0', 'a1', 'a2', 'a3', 'a3', 'a4', 'C', 'b4', 'b5', 'b5', 'b4', 'D', 'c4', 'c4', 'D', 'b4', 'b3', 'b2']
['a0', 'a1', 'a2', 'a3', 'a3', 'a4', 'C', 'b4', 'D', 'c4', 'c4', 'D', 'b4', 'b3', 'b2', 'b2', 'b3', 'b4', 'b5']
['a0', 'a1', 'a2', 'a3', 'a3', 'a4', 'C', 'b4', 'D', 'c4', 'c4', 'D', 'b4', 'b5', 'b5', 'b4', 'b3', 'b2']

我想找到最短的列表,该列表的元素数最少

谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用min函数:

min(data, key = len)

如果要处理多个元素具有最短长度的情况,可以按长度升序对列表进行排序:

sorted(data, key = len)

答案 1 :(得分:0)

您可以按列表长度对其进行排序,然后获取第一个元素,但这不会考虑所有长度相同的列表。

smallest_list = sorted(list_of_list, key=len)[0]

另一个将获得最小列表的长度,然后将其用作过滤器

len_smallest_list = min(len(x) for x in list_of_list)
smallest_list = [list for list in list_of_list if len(list) == len_smallest_list]