Предположим, у меня есть генератор gen
, который дает некоторые списки. Я бы хотел найти самый длинный список.Поиск самого большого/самого маленького объекта в генераторе питона/список
я могу сделать
max((len(L) for L in gen))
который получит мне длину самого длинного списка, но в данный момент список уходит в глубину веков.
В качестве альтернативы я мог бы сделать
maxlength = 0
for L in gen:
if len(L)>maxlength:
savelist = L
maxlength = len(L)
Но, кажется, там должно быть более вещий способ, который позволяет избежать цикл и если заявление.
редактировать просто комментарий, чтобы помочь другим, которые могли бы найти похожие проблемы: найти наименьший объект с min
можно сделать то же самое, и тот же подход будет работать, если gen
список вместо этого.
Это действительно эквивалент? 'max' должен только один раз перебирать элементы, а не сортировать их. – khelwood
@khelwood нет, совсем нет, но он дает тот же результат –