小编典典

了解地图功能

all

map(function, iterable, ...)

将函数应用于可迭代的每个项目并返回结果列表。如果传递了额外的可迭代参数,函数必须接受那么多参数并并行应用于所有可迭代的项目。

如果一个可迭代对象比另一个更短,则假定使用 None 项进行扩展。

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

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

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

content = map(tuple, array)

将元组放在其中有什么影响?我还注意到,如果没有 map 函数,输出abca, b, c.

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


阅读 70

收藏
2022-04-08

共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))
2022-04-08