相关疑难解决方法(0)

了解地图功能

map(function, iterable, ...)
Run Code Online (Sandbox Code Playgroud)

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

如果一个iterable比另一个短,则假定使用None项扩展.

如果是Nonefunction,则假定为identity函数; 如果有多个参数,则map()返回一个由包含所有迭代中相应项的元组组成的列表(一种转置操作).

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

这在制作笛卡尔积的过程中扮演什么角色?

content = map(tuple, array)
Run Code Online (Sandbox Code Playgroud)

将元组放在哪里有什么影响?我也注意到,如果没有map函数,输出就是abc和它一样a, b, c.

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

python map-function

290
推荐指数
6
解决办法
43万
查看次数

什么时候不是使用python生成器的好时机?

这与你可以使用Python生成器函数什么相反:python生成器,生成器表达式和itertools模块是我最近python的一些特性.它们在设置操作链以在大量数据上执行时特别有用 - 我经常在处理DSV文件时使用它们.

那么什么时候不是使用生成器,生成器表达式或itertools函数的好时机?

  • 当我应该喜欢zip()itertools.izip(),或
  • range()结束xrange(),或
  • [x for x in foo]结束(x for x in foo)

显然,我们最终需要将生成器"解析"为实际数据,通常是通过创建列表或使用非生成器循环对其进行迭代.有时我们只需知道长度.这不是我要问的.

我们使用生成器,因此我们不会将新列表分配给内存以用于临时数据.这对于大型数据集尤其有用.对于小型数据集也有意义吗?有明显的内存/ CPU权衡吗?

考虑到列表理解性能与map()和filter()的开放性讨论,我特别感兴趣的是,如果有人对此做了一些分析.(alt链接)

python optimization iterator generator

79
推荐指数
6
解决办法
1万
查看次数

当它在地图中时,打印不会打印,Python

primes = [2,3,5,7..] (prime numbers)
map(lambda x:print(x),primes)
Run Code Online (Sandbox Code Playgroud)

它不打印任何东西.这是为什么?我试过了

sys.stdout.write(x)
Run Code Online (Sandbox Code Playgroud)

也是,但也不起作用.

dictionary python-3.x

51
推荐指数
2
解决办法
4万
查看次数

python map函数迭代

结果是一个嵌套列表,如下所示:

>>> results
[[1, 2, 3, 'a', 'b'], [1, 2, 3, 'c', 'd'], [4, 5, 6, 'a', 'b'], [4, 5, 6, 'c', 'd']]
Run Code Online (Sandbox Code Playgroud)

pr是一个函数,定义如下:

>>> def pr(line):
...     print line
Run Code Online (Sandbox Code Playgroud)

结果的正常迭代确实如下所示:

>>> for result in results:
...     pr(result)
... 
[1, 2, 3, 'a', 'b']
[1, 2, 3, 'c', 'd']
[4, 5, 6, 'a', 'b']
[4, 5, 6, 'c', 'd']
Run Code Online (Sandbox Code Playgroud)

但是使用map进行隐式迭代会导致此行为:

>>> map(pr, results)
[1, 2, 3, 'a', 'b']
[1, 2, 3, 'c', 'd']
[4, 5, 6, 'a', 'b']
[4, 5, …
Run Code Online (Sandbox Code Playgroud)

python map

6
推荐指数
2
解决办法
1199
查看次数

Python map函数是一个值返回函数吗?

我一直在尝试使用mapPython中的函数,并且我遇到了一些麻烦.我无法分辨这些是将函数foo映射到列表栏的正确方法:

map(foo, bar)
Run Code Online (Sandbox Code Playgroud)

要么

newBar = map(foo, bar)
Run Code Online (Sandbox Code Playgroud)

我从不同的网站得到了不同的结果.哪些是正确的用法?

python list return-type

0
推荐指数
1
解决办法
905
查看次数