首页 > 解决方案 > 如何将这个 for 循环变成列表理解

问题描述

#!/usr/bin/python2
s=5              # input any int 
l1=[5,8,2,1,17]  # input some int numbers
l2=[]            # will be out
for i in l1: 
    s+=i
    l2.append(s)
print l1,l2
[5, 8, 2, 1, 17] 
[10, 18, 20, 21, 38]

我想用 listcomprehension 替换上面的循环。我通常使用列表推导,但我不知道如何使用上述循环。

标签: python

解决方案


在这里你可以看到 sum() 的使用。但是,如果列表对于 sum() 的重复计算来说太长,我不喜欢它

>>> s=5
>>> 
>>> l1=[5,8,2,1,17]
>>> [s+sum(l1[:i+1]) for i,x in enumerate(l1)]
[10, 18, 20, 21, 38]
>>> 

推荐阅读