简体   繁体   English

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

[英]haw can I find the smallest list among some lists generated by my program?

I wrote a program that generates some lists, something like 我编写了一个程序,该程序生成一些列表,例如

['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']

and I want to find the shortest list, the list that has the minimum number of elements 我想找到最短的列表,即元素数量最少的列表

thanks, 谢谢,

You can use the min function: 您可以使用min函数:

min(data, key = len)

If you want to handle cases where there are multiple elements having the shortest length, you can sort the list in ascending order by length: 如果要处理多个元素具有最短长度的情况,则可以按长度升序对列表进行排序:

sorted(data, key = len)

You can sort it by list length then get the first element but this won't take into account lists that all have the same length. 您可以按列表长度对其进行排序,然后获取第一个元素,但这不会考虑所有长度相同的列表。

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

Another would be get the length of the smallest list then use that as a filter 另一个将是获取最小列表的长度,然后将其用作过滤器

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]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM