如何嵌套列表推导

时间:2015-09-12 00:15:07

标签: python python-3.x

我被分配了作业,并花了几个小时在圈子里试图筑巢理解。具体来说,我试图在字符串中找到元音(例如,S ='这是一个简单的赋值')并让它从列表中的字符串返回元音(所以,[1],[1],[1] ,[2],[3])

我快速想出了[len(x)for S. in S.lower()。split()] 给出单词的长度,但不能成功地使它产生所需的输出。除了列表推导之外,这个问题不能使用任何东西。

1 个答案:

答案 0 :(得分:0)

类似的东西:

[[len([v for v in x if v in 'aeiou'])] for x in S.lower().split()]

不确定为什么你希望计数本身就是单个元素列表,但这只能用列表推导(加上len调用)来实现。

注意:建议的修改是使用[sum(x.count(v) for v in 'aeiou') for x in S.lower().split()];这是一种合理的方法(尽管x.count意味着遍历字符串五次;在CPython中它可能仍然更快,但在JIT-ed解释器中,单次传递可能更好),并保持使用列表推导,而不是生成器表达式,你必须在求和之前毫无意义地实现列表:[sum([x.count(v) for v in 'aeiou']) for x in S.lower().split()]