python-3.x - 如何在没有 numpy、zip 等的情况下将列表中的元素相乘并以简单的方式求和
问题描述
我必须将两个列表的相同索引相乘,然后找到它的总和。
请帮帮我!谢谢你。
解决方案
尝试这个,
>>> A=[2, 3, -6, 7, 10, 11]
>>> B=[1, 2, 3, 4, 5, 6]
>>> sum([x * y for x, y in zip(A, B)])
134
让我解释一下我在回答中做了什么,我使用了zip()
python内置函数,这就是文档中提到的内容。
创建一个迭代器,聚合来自每个可迭代对象的元素。
返回元组的迭代器,其中第 i 个元组包含来自每个参数序列或可迭代对象的第 i 个元素。当最短的输入迭代用完时,迭代器停止。使用单个可迭代参数,它返回一个 1 元组的迭代器。没有参数,它返回一个空的迭代器。
有点混乱,对吧?检查以下示例:-
>>> A=[2, 3, -6, 7, 10, 11]
>>> B=[1, 2, 3, 4, 5, 6]
>>> zip(A,B)
<zip at 0x1fde73e6f88> # it display something like this (zip object)
>>> list(zip(A,B)) # for visualization purpose, convert zip object to list
[(2, 1), (3, 2), (-6, 3), (7, 4), (10, 5), (11, 6)]
我想你可以清楚地知道zip()
函数内部发生了什么。zip
然后使用 python List Comprehensions将对象中的每个值相乘,以更 Pythonic 的方式回答您的问题。所以 zip 对象现在为我们创建了一个使用A
和B
列表的新值系列。x
我们为and分配了这些值y
,将它们相乘并保存在列表中。
>>> [x * y for x, y in zip(A, B)]
[2, 6, -18, 28, 50, 66]
在我们用于sum()
计算Sum 的所有步骤之后,Python 中的数字列表。
>>> sum([2, 6, -18, 28, 50, 66])
134
就是这样,如果您没有得到任何东西,请在此答案中添加评论。
推荐阅读
- python - 使用 Python 解析配置文件并创建 json 对象
- python - 导入自定义字体 Flask 和 Tailwind CSS
- java - 编年史队列 POC 返回意外延迟
- rust - 如何在 rust 中测试异步函数?
- python - 安装了 NodeJS,突然我的 python DLL 丢失了
- python - 如何使用 requests.post 在网站上提交表单?
- python - 在 pyspark 中应用 udf 过滤功能
- c++ - 从字节缓冲区到结构的强制转换有什么作用?
- intellij-idea - IntelliJ 检查在更新到 2021.1 后不起作用
- linux - Apache/Linux - 以 root 身份部署网站?