一尘不染

Python-了解map函数

python

map(function, iterable, ...)

将函数应用于每个iterable并返回结果列表。如果传递了其他可迭代的参数,则函数必须采用那么多参数,并且并行地将其应用于所有可迭代的项目。

如果一个可迭代项短于另一个可迭代项,则假定它扩展为None。

如果functionNone,则假定为身份函数;如果有多个参数,则map()返回一个由元组组成的列表,其中包含所有可迭代对象中的对应项(一种转置操作)。

可迭代参数可以是序列或任何可迭代对象。结果总是一个列表。

这在制作笛卡尔积时起什么作用?

content = map(tuple, array)

将元组放在任何地方会有什么作用?我也注意到,如果没有地图功能的输出abc,并与它,它的a, b, c

我想完全了解此功能。参考定义也很难理解。花哨的绒毛太多。


阅读 531

收藏
2020-02-17

共1个答案

一尘不染

map不是特别pythonic。我建议改用列表推导:

map(f, iterable)

基本上等同于:

[f(x) for x in iterable]

map单独不能执行笛卡尔积,因为其输出列表的长度始终与输入列表相同。你可以通过列表理解来简单地做笛卡尔积:

[(a, b) for a in iterable_a for b in iterable_b]

语法有点混乱-基本上等同于:

result = []
for a in iterable_a:
    for b in iterable_b:
        result.append((a, b))
2020-02-17