Eu tenho uma lista de comprimento variável e estou tentando encontrar uma maneira de testar se o item da lista que está sendo avaliado atualmente é a string mais longa contida na lista. E eu estou usando o Python 2.6.1
Por exemplo:
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()
Certamente há uma compreensão simples da lista que é curta e elegante que estou ignorando?
python
list
list-comprehension
user104997
fonte
fonte
print(max(["this", "does", "work"], key=len))
somente retorna em"this"
vez de retornar todas as cadeias mais longas.m=max(map(len,xs)); [x for x in xs if len(x) == m]
. Eu não acho que isso possa ser feito bem em uma linha.O que deve acontecer se houver mais de uma string mais longa (pense em '12' e '01')?
Tente isso para obter o elemento mais longo
E depois foreach regular
fonte
ou muito mais fácil:
fonte
http://effbot.org/zone/python-list.htm
Parece que você poderia usar a função max se mapeá-la corretamente para seqüências de caracteres e usá-la como comparação. Eu recomendaria apenas encontrar o máximo uma vez, é claro, não para cada elemento da lista.
fonte
len(each) == max(len(x) for x in myList)
ou apenaseach == max(myList, key=len)
fonte
fonte