hh=[[82.5], [168.5]]
N=1./5
ll=N*hh
我做错了什么?我收到错误:
"无法将序列乘以'float'类型的非int"
我试着添加float(),但这并没有解决我的问题;
我需要乘以数组中的每个元素...感谢所有
**好的,谢谢你关于number * array的想法,但是如何相乘array * array,我尝试了与number * array相同的方法,但是有问题:
编辑2:**
hh=[[82.5], [168.5]]
N=zip(*hh)
ll = [[x*N for x in y] for y in hh]
???
3条答案
按热度按时间uubf1zoe1#
在Python中,当你把一个序列乘以
X
时,并不是把序列中的每个成员都乘以,而是把序列X
重复几次,这就是为什么X必须是整数(不能是浮点型)。你要做的是使用一个列表解析:
kzipqqlq2#
在Python中你可以这样做:
这需要int类型。
您要寻找的是类似于
map
或列表理解的东西。您也可以生成器理解来懒洋洋地做这件事。
或者你也可以做得有点像 haskell 式的(尽管没有优雅):
vwkv1x7d3#
您还可以使用
numpy
数组将数组中的数字相乘。