算上python列表理解

时间:2016-03-02 21:59:02

标签: python list-comprehension

我如何在python中编写一个包含a的列表推导 count = count + 1?

print sum([info[count]["count"] for i in info])

# This is the working loop: 

count = 0
lst = []
for i in info:
    num = info[count]["count"]
    # print num
    count = count + 1
    lst.append(num)
print sum(lst)

2 个答案:

答案 0 :(得分:0)

我不理解您在ii in info一起使用count的原因。如果info是可枚举的,并且枚举与使用零偏移索引访问具有相同的效果(就像您似乎使用count一样),您可以重写您的循环:

lst = []
for infoi in info:
    num = infoi["count"]
    # print num
    lst.append(num)

print sum(lst)

现在您可以将其转换为以下列表理解:

sum([infoi["count"] for infoi in info])

最后,您不需要具体化对列表的理解,sum可以在生成器上工作:

sum(infoi["count"] for infoi in info)

这可能更有效率,因为您将首先使用所有值构建列表:sum将枚举所有项目,从而导致内存使用不变。

答案 1 :(得分:0)

    >>> a = ['a','b','c']
    >>> v = ['a','e','i','o','u']
    >>> len(a)
    3
    >>> sum([1 for x in a if x in v])
    2