使用python列表推导时,如何在索引中包含两个元素?

时间:2016-08-03 00:43:08

标签: python list-comprehension

我正在尝试使用列表理解来完全大写单词以及将其长度包含在新列表中。

例如,如果我输入wordLengths(["hello","bye","greetings"])我想要此输出。

[("HELLO",5),("BYE",3),("GREETINGS",9)] 

这是我目前的代码

def wordLengths(myWords):
    return [i.upper() for i in myWords], [len(i) for i in myWords]

这是当前的输出

(['HELLO', 'BYE', 'GREETINGS'], [5, 3, 9])

2 个答案:

答案 0 :(得分:4)

你需要在一个列表理解中完成这两个:

[(i.upper(), len(i)) for i in myWords]

答案 1 :(得分:2)

您的方法返回两个列表的元组,您实际要做的是创建一个元组列表。

你的理解只是:

[(word.upper(), len(word)) for word in words]

因此,您的方法现在可以重写为:

def wordLengths(myWords):
    return [(word.upper(), len(word)) for word in myWords]

演示:

words = ["hello", "bye", "greetings"]
print(wordLengths(words))
# outputs
# [('HELLO', 5), ('BYE', 3), ('GREETINGS', 9)]