关于列表理解

About list comprehension

在一个表达式中,我想计算 L 中元音的数量。我知道这可以通过列表理解来完成,但我在思考解决方案时遇到了麻烦。特别是因为您不能将 ors 与字符串一起使用。

L = "thanks yoU For the help"

列表理解

L = [Not sure for L in L.lower().split() if not sure]

print L
[1, 2, 1, 1, 1,]

我想让它打印每个单词中的元音数量。我知道我必须使用 split 并且我想将其小写以使其更容易。我不确定我是否走对了。

我想这就是您要找的:

L = "thanks yoU For the help".lower()
L2 = [sum(x.count(y) for y in 'aeoiu') for x in L.split()]
print (L2)

输出:

[1, 2, 1, 1, 1]

解释: L.split() 创建一个 list,其中所有元素都是小写的,因为 .lower():

['thanks', 'you', 'for', 'the', 'help']

for x in L.split() 遍历该列表中的每个单词,for y in 'aeoiu' 遍历字符串 'aeoiu' 中的每个字符。然后,sum(x.count(y) 计算 y winch 是 'aeoiu' 中的任何字符在 x 中的次数这是 ['thanks', 'you', 'for', 'the', 'help']

中的每个单词