У меня есть список переменной длины, и я пытаюсь найти способ проверить, является ли элемент списка, который в данный момент оценивается, самой длинной строкой, содержащейся в списке. И я использую Python 2.6.1
Например:
mylist = ['abc','abcdef','abcd']
for each in mylist:
if condition1:
do_something()
elif ___________________: #else if each is the longest string contained in mylist:
do_something_else()
Конечно, есть простое понимание списка, которое короткое и элегантное, что я пропускаю?
python
list
list-comprehension
user104997
источник
источник
print(max(["this", "does", "work"], key=len))
только возвращает"this"
вместо того, чтобы возвращать все самые длинные строки.m=max(map(len,xs)); [x for x in xs if len(x) == m]
. Я не думаю, что это можно сделать красиво в одну строку.Что должно произойти, если имеется более 1 самой длинной строки (например, «12» и «01»)?
Попробуйте это, чтобы получить самый длинный элемент
И тогда регулярный foreach
источник
или намного проще:
источник
http://effbot.org/zone/python-list.htm
Похоже, вы могли бы использовать функцию max, если вы правильно отобразите ее для строк и будете использовать ее в качестве сравнения. Я бы порекомендовал просто найти максимум один раз, хотя, конечно, не для каждого элемента в списке.
источник
len(each) == max(len(x) for x in myList)
или простоeach == max(myList, key=len)
источник
источник