2016-07-31 51 views
1

我有一個函數,它使用列表理解返回列表元素的大寫,並計算每個元素。如何使用列表理解返回元組和列表的計數

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"])) 

這將返回:

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

,但我需要它返回成對的元組是這樣的:

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

我試圖用zip()方法,但沒有成功。我如何去做這件事?

回答

4

您可以使用zip()

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

但是,爲什麼不構建一個單一的迭代名單:

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