python - 在不使用python中的库的情况下,将两个不同大小的元素列表相乘
问题描述
#create a simple list in python
#list comprehension
x = [i for i in range(100)]
print (x)
#using loops
squares = []
for x in range(10):
squares.append(x**2)
print (squares)
multiples = k*[z for z in x] for k in squares
所以在最后一行代码中,我试图将两个列表相乘。问题是列表不在同一侧,并且 k*[z for z in x] 这部分也不正确。
解决方案
我不太明白所需的输出是什么。就现在的函数而言,您将拥有一个列表列表,其中第一个元素有 100 个元素,第二个元素有 400 个元素,第三个元素有 900 个元素,以此类推。
- 有一点很奇怪:表达式
[z for z in x]
定义了一个与 x 相同的列表。所以,你可能只是写k*x
- 如果要将两个列表的元素相乘,则必须编写
[[k*z for z in x] for k in squares]
. 这将导致包含 100 个元素(或 10x100 矩阵)的 10 个列表的列表,其中包含列表的产品。 - 如果您希望最后有一份长度为 100 的列表包含某种产品,您将不得不考虑如何处理较短的列表。
- 编辑:或者,如果您想尽可能地将它们相乘,直到到达较短列表的末尾,FRANCOIS CYRIL 的解决方案是一种优雅的方式。
推荐阅读
- javascript - 如何在谷歌地图上添加带有不同图标的标记?
- wordpress - 如何将“-”符号更改为管道符号“|” 在 WordPress 标题中?
- scala - 无法坚持演员
- excel - 等待 Windows 是否仍在使用该文件
- ehcache - 如何将 ehcache.xml 中的属性外部化
- ruby-on-rails - Rails 分页表单偶尔不会发布参数
- c++ - 将代码从 vb.net 迁移到 C++ dll 是否会显着提升性能?
- node.js - 导入模块后未定义类型错误读取文件
- jquery - 如何将 PHP 转换为 jQuery
- javascript - 从 ObservableArray 访问对象值并在 Label 中显示它们