Python: Как я могу получить все элементы в списке до самого длинного элемента?

У меня есть список, например

l = ['abc34','def987','ghij','klmno','pqrstuvwxyz1234567','98765','43','210abc'] 

Как я могу получить все элементы в списке до появления самого длинного элемента, а не того, что приходит после?

2 Solutions collect form web for “Python: Как я могу получить все элементы в списке до самого длинного элемента?”

Это работает:

 lst = ['abc34','def987','ghij','klmno','pqrstuvwxyz1234567','98765','43','210abc'] idx, maxLenStr = max(enumerate(lst), key=lambda x:len(x[1])) sublist = lst[:idx] 

Он только итерации через список один раз для определения максимальной длины, тогда как использование max() а затем index() повторяется дважды по всем элементам. Он также сохраняет строку с максимальной длиной в maxLenStr и индексом, где она была найдена в idx , на всякий случай.

Это один из способов:

 l = ['abc34','def987','ghij','klmno','pqrstuvwxyz1234567','98765','43','210abc'] new_list = l[:l.index(max(l, key=len))] 
  • Вычислить разницу между смежными элементами в списке python
  • Заполнение списка определенным образом
  • Удалите все элементы, которые встречаются в одном списке из другого
  • Python, инициализирующий список списков
  • Python находит первый экземпляр ненулевого числа в списке
  • как объединить 2 списка однозначно
  • Что такое Pythonic способ удалить дублированные дубликаты в списке, но разрешить триплеты / больше?
  • lstrip (), rstrip () для списков
  • Python - лучший язык программирования в мире.