python - 如何将列表中的所有整数乘以它们的索引相加?
问题描述
目标是返回列表中所有项目的总和,其中每个项目乘以其索引。
我的代码适用于一些测试用例;但是,它不适用于其他人。为什么不?
def index_multiplier(lst):
total = 0
if len(lst) >= 1:
for num in lst:
x = num*(lst.index(num))
total += x
return total
else:
return 0
第一个不起作用的测试用例:Test.assert_equals(index_multiplier([4, 4, 2, 2, -4]), -2)
我的代码返回 -8
解决方案
为什么不只是一个简单的列表理解?
x = [4, 4, 2, 2, -4]
out = sum([i*y for i,y in enumerate(x)])
输出:
-2
编辑 - 可以不带方括号使用:
out = sum(i*y for i,y in enumerate(x))
推荐阅读
- css - Alt-Background 用于透明背景图像
- anylogic - AnyLogic - 存储为多个位置的资源池
- javascript - 无法读取未定义 REACT 的 setState 属性
- c# - 通过 Visual Studio 使用 AD auth 设置默认 azure Web 应用程序返回错误
- ios - 无法在自定义框架中添加 cocoapod 依赖项 - Swift
- python - one2many 字段形式中的名称与输入字段中的名称不同
- php - Yii2 验证一个空数组(空数组)
- c++ - 如何开启多线程 BOOST_DISABLE_THREADS
- reactjs - MultiList/MultiDropdownList 未在 React 中显示或抛出错误
- java - 使用 Spring Webflux 从 Mongodb Reactive 刷新/同步数据