在python中使用map函数的这段简单代码有什么问题?

在python中使用map函数的这段简单代码有什么问题?,python,function,dictionary,Python,Function,Dictionary,代码如下: def func(i,j): return i+j m = list(product(range(5),range(7))) print(m) x = map(func,m) list(x) 错误: [(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 0), (2, 1), (2, 2), (

代码如下:

def func(i,j):
    return i+j

m = list(product(range(5),range(7)))
print(m)
x = map(func,m)
list(x)
错误:

[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (3, 0), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6)]
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-181-fdda131ed5e8> in <module>()



      5 print(m)
      6 x = map(func,m)
----> 7 list(x)

TypeError: func() missing 1 required positional argument: 'j'
[(0,0)、(0,1)、(0,2)、(0,3)、(0,4)、(0,5)、(0,6)、(1,0)、(1,1)、(1,3)、(1,4)、(1,5)、(1,6)、(2,0)、(2,1)、(2,2)、(2,3)、(2,4)、(2,5)、(2,6)、(3,0)、(3,1)、(3,3)、(3,4)、(3,5)、(3,6)、(4,0)、(4,1)、(4,5)、(4,5)、(4,6)]
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
5印(米)
6 x=映射(func,m)
---->7清单(x)
TypeError:func()缺少1个必需的位置参数:“j”
如何将
m
中的每一对通过
func
传递。我不需要任何for循环。

您可以使用:

您可以使用:


可能重复可能重复啊。。。我忘记了星图。。。虽然
result=[func(*el)表示m中的el]
是可读的enough@JonClements@chepner是的,在大多数情况下,我个人可能不会使用
starmap
(我很少使用
map
),但我的印象是OP想要一些没有
的东西(但可能他们只是不想要合适的循环,但对理解/生成器没有问题)@chepner用于2-arg调用是的…解包并没有什么坏处,但我可能不会继续那种有更多参数的模式…@chepner…或者在传递到函数之前需要重新排序或以其他方式操纵参数hh…我忘记了星图…尽管
result=[func(*el)表示el in m]
是可读的enough@JonClements@chepner是的,在大多数情况下,我个人可能不会使用
starmap
(我很少使用
map
),但我的印象是OP想要一些没有
(但也许他们只是不想要合适的循环,而且理解/生成器也没问题).@chepner for 2-arg调用是的…解包不会有什么坏处,但我可能不会在有更多参数的情况下继续这种模式…@chepner…或者在传递到函数之前需要重新排序或以其他方式操纵参数
from itertools import product, starmap

def func(i,j):
    return i+j

m = list(product(range(5),range(7)))
print(m)
x = starmap(func,m)
list(x)