【发布时间】:2019-01-25 02:08:11
【问题描述】:
我正在使用 Python3.6,并试图找出我们可以将 map 与多个参数一起使用的方法。
当我跑步时,
def multiply(x, y, z):
return x * y * z
products = map(multiply, [3,6], [1,8], [3,5])
list(products) 按预期返回[9, 240]
但是,当我为 z 指定默认值时,
def multiply(x, y, z = [3,5]):
return x * y * z
products = map(multiply, [3,6], [1,8])
list(product) 返回
[[3, 5, 3, 5, 3, 5],
[3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5,
3,
5]]
为什么 Python 在两种情况下运行 map 的方式不同?
【问题讨论】:
-
因为
z是一个列表.. -
当然,但是
z不是在这两种情况下的列表吗? -
好的,我来编辑
-
@Isaac 不,它不是两种情况下的列表。当您使用
map时,它会传递列表中的元素。
标签: python python-3.x default