标签: python list idioms
我有一个包含其他列表的列表,我想检索具有最少元素的列表。 一个明显的解决方案是:
list_of_list = ... least = list_of_lists[0] for list in list_of_lists[1:] if len(list) < len(least): least = list return least
是否有更惯用的方式来做到这一点?
答案 0 :(得分:5)
使用min()作为密钥使用len():
min()
len()
min(list_of_lists, key=len)
这将返回最短的列表:
>>> import random >>> list_of_lists = [[None] * random.randint(3, 10) for _ in range(10)] >>> min(list_of_lists, key=len) [None, None, None]