tuple(l * r for l, r in zip(left, right))
Run Code Online (Sandbox Code Playgroud)
例如,
>>> tuple(l * r for l, r in zip((1, 2, 3), (1, 2, 3)))
(1, 4, 9)
>>> tuple(l * r for l, r in zip((0.6, 3.5), (4, 4)))
(2.4, 14.0)
Run Code Online (Sandbox Code Playgroud)
在Python 2.x中,zip
返回元组列表.如果您想避免创建临时列表,可以itertools.izip
像这样使用
>>> from itertools import izip
>>> tuple(l * r for l, r in izip((1, 2, 3), (1, 2, 3)))
(1, 4, 9)
>>> tuple(l * r for l, r in izip((0.6, 3.5), (4, 4)))
(2.4, 14.0)
Run Code Online (Sandbox Code Playgroud)
你可以阅读更多有关之间的差异zip
,并itertools.izip
在此问题.
如果您对元素乘法感兴趣,您可能会发现许多其他元素数学运算也很有用.如果是这种情况,请考虑使用该numpy
库.
例如:
>>> import numpy as np
>>> x = np.array([1, 2, 3])
>>> y = np.array([1, 2, 2])
>>> x * y
array([1, 4, 6])
>>> x + y
array([2, 4, 5])
Run Code Online (Sandbox Code Playgroud)
一种更简单的方法是:
from operator import mul
In [19]: tuple(map(mul, [0, 1, 2, 3], [10, 20, 30, 40]))
Out[19]: (0, 20, 60, 120)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3043 次 |
最近记录: |