Tengo una lista de longitud variable y estoy tratando de encontrar una manera de probar si el elemento de la lista que se está evaluando actualmente es la cadena más larga contenida en la lista. Y estoy usando Python 2.6.1
Por ejemplo:
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()
¿Seguramente hay una simple lista de comprensión que es corta y elegante que estoy pasando por alto?
python
list
list-comprehension
usuario104997
fuente
fuente
print(max(["this", "does", "work"], key=len))
solo devuelve en"this"
lugar de devolver todas las cadenas más largas.m=max(map(len,xs)); [x for x in xs if len(x) == m]
. No creo que se pueda hacer bien en una línea.¿Qué debería suceder si hay más de 1 cadena más larga (piense en '12' y '01')?
Prueba eso para obtener el elemento más largo
Y luego foreach regular
fuente
o mucho más fácil:
fuente
http://effbot.org/zone/python-list.htm
Parece que podría usar la función max si la asigna correctamente para cadenas y la usa como comparación. Sin embargo, recomendaría solo encontrar el máximo una vez, no para cada elemento de la lista.
fuente
len(each) == max(len(x) for x in myList)
o soloeach == max(myList, key=len)
fuente
fuente