use*_*437 2 python list multiplying
如何使用函数在python中将列表相乘?这就是我所拥有的:
list = [1, 2, 3, 4]
def list_multiplication(list, value):
mylist = []
for item in list:
for place in value:
mylist.append(item*value)
return mylist
Run Code Online (Sandbox Code Playgroud)
所以我想用它来乘以列表*列表(1*1,2*2,3*3,4*4)
所以输出将是1,4,9和16.我如何在python中执行此操作,其中第二个列表可以是任何内容?谢谢
我最喜欢的方法是将mul运算符映射到两个列表:
from operator import mul
mul(2, 5)
#>>> 10
mul(3, 6)
#>>> 18
map(mul, [1, 2, 3, 4, 5], [6, 7, 8, 9, 10])
#>>> <map object at 0x7fc424916f50>
Run Code Online (Sandbox Code Playgroud)
map至少在Python 3中,返回一个生成器.因此,如果您想要一个列表,您应该将其转换为一个:
list(map(mul, [1, 2, 3, 4, 5], [6, 7, 8, 9, 10]))
#>>> [6, 14, 24, 36, 50]
Run Code Online (Sandbox Code Playgroud)
但到那时,对zip'd列表使用列表理解可能更有意义.
[a*b for a, b in zip([1, 2, 3, 4, 5], [6, 7, 8, 9, 10])]
#>>> [6, 14, 24, 36, 50]
Run Code Online (Sandbox Code Playgroud)
为了解释最后一个,zip([a,b,c], [x,y,z])给出(生成的生成器)[(a,x),(b,y),(c,z)].
在for a, b in"解包"每(m,n)对入变量a和b,和a*b它们相乘.
| 归档时间: |
|
| 查看次数: |
15564 次 |
| 最近记录: |