2016-07-31 35 views
1

Ich habe eine Funktion, die, Listenverstehen verwendend, die Listenelemente in Großbuchstaben zurückgibt und jedes Element zählt.Wie Tupel zurückgeben und aus der Liste mit Listenverstehen zählen

def wordlengths(mywords): 
    upperword = [word.upper() for word in mywords] 
    lenword = [len(i) for i in mywords] 
    return upperword, lenword 
print(wordlengths(["The", "quick", "brown", "fox"])) 

Das gibt:

(['THE', 'QUICK', 'BROWN', 'FOX'], [3, 5, 5, 3]) 

, aber ich brauche es so gepaart Tupel zurück:

[("THE", 3), ("QUICK", 5), ("BROWN", 5), ("FOX", 3)] 

Ich versuchte, die zip() Methode ohne Erfolg zu nutzen. Wie gehe ich dabei vor?

Antwort

4

können Sie zip() verwenden:

def wordlengths(mywords): 
    upperword = [word.upper() for word in mywords] 
    lenword = [len(i) for i in mywords] 
    return list(zip(upperword, lenword)) 

Aber warum bauen die Liste nicht in einer einzigen Iteration:

def wordlengths(mywords): 
    return [(word.upper(), len(word)) for word in mywords]