Ich habe eine Liste mit variabler Länge und versuche zu testen, ob das aktuell ausgewertete Listenelement die längste in der Liste enthaltene Zeichenfolge ist. Und ich benutze Python 2.6.1
Beispielsweise:
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()
Sicher gibt es ein einfaches Listenverständnis, das kurz und elegant ist und das ich übersehen habe?
python
list
list-comprehension
user104997
quelle
quelle
print(max(["this", "does", "work"], key=len))
nur zurückgegeben,"this"
anstatt alle längsten Zeichenfolgen zurückzugeben.m=max(map(len,xs)); [x for x in xs if len(x) == m]
. Ich denke nicht, dass es gut in einer Zeile gemacht werden kann.Was sollte passieren, wenn mehr als eine längste Zeichenfolge vorhanden ist (denken Sie an '12' und '01')?
Versuchen Sie das, um das längste Element zu erhalten
Und dann regelmäßig foreach
quelle
oder viel einfacher:
quelle
http://effbot.org/zone/python-list.htm
Sieht so aus, als könnten Sie die Max-Funktion verwenden, wenn Sie sie für Zeichenfolgen korrekt zuordnen und als Vergleich verwenden. Ich würde natürlich empfehlen, das Maximum nur einmal zu finden, nicht für jedes Element in der Liste.
quelle
len(each) == max(len(x) for x in myList)
oder nureach == max(myList, key=len)
quelle
quelle