python - 如何将这个 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 替换上面的循环。我通常使用列表推导,但我不知道如何使用上述循环。
解决方案
在这里你可以看到 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]
>>>
推荐阅读
- javascript - 如何将 AJAX 响应分配给全局变量?
- r - 绘制具有不同基本总体的 R 中的百分比
- javascript - 未捕获的类型错误:无法读取未定义的属性“螺旋桨”
- instagram - 如何在 reactnative 应用程序中将 instagram 与 aws amplify 一起使用?
- angular - 如何为在构造函数中使用 @Inject() 的 Angular 7 服务准备测试
- mongodb - 复合索引 MongoDB
- flutter - How to create infinity PageView in Flutter
- javascript - Angular SCSS 颜色变量在 IE11 中不起作用
- android - 如何修复发布 apk 断言在颤振中失败?
- java - Restfb - 为什么当我获取我的管理组时,应用程序会抛出 OAuthException:(#200)权限错误(代码 200,子代码为空)