相关疑难解决方法(0)

Python:类似拉链的功能,填充到最长的长度?

是否有一个内置函数,zip()但它会填充结果,以便结果列表的长度是最长输入的长度而不是最短的输入?

>>> a=['a1']
>>> b=['b1','b2','b3']
>>> c=['c1','c2']

>>> zip(a,b,c)
[('a1', 'b1', 'c1')]

>>> What command goes here?
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Run Code Online (Sandbox Code Playgroud)

python zip list

146
推荐指数
4
解决办法
7万
查看次数

为什么map在Python 3中返回地图对象而不是列表?

我有兴趣了解Python 3.x新语言设计.

我喜欢在Python 2.7中使用的功能map:

Python 2.7.12
In[2]: map(lambda x: x+1, [1,2,3])
Out[2]: [2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

但是,在Python 3.x中,事情发生了变化:

Python 3.5.1
In[2]: map(lambda x: x+1, [1,2,3])
Out[2]: <map at 0x4218390>
Run Code Online (Sandbox Code Playgroud)

我理解如何,但我找不到为什么的参考.为什么语言设计师会做出这样的选择,在我看来,这会引入很多痛苦.这是为了让开发人员坚持列表理解吗?

IMO,list自然可以被认为是Functors ; 而且我一直被认为以这种方式思考:

fmap :: (a -> b) -> f a -> f b
Run Code Online (Sandbox Code Playgroud)

python python-3.x

73
推荐指数
4
解决办法
5万
查看次数

在Python 3中的地图中调用none

我在Python2.7中执行以下操作:

>>> a = [1,2,3,4,5]
>>> b = [2,1,3,4]
>>> c = [3,4]
>>> map(None, a, b, c)
[(1, 2, 3), (2, 1, 4), (3, 3, None), (4, 4, None), (5, None, None)]
Run Code Online (Sandbox Code Playgroud)

我试图在Python3中做类似的事情

>>> a = [1,2,3,4,5]
>>> b = [2,1,3,4]
>>> c = [3,4]
>>> map(None, a, b, c)
<map object at 0xb72289ec>
>>> for i,j,k in map(None, a, b, c):
...  print (i,j,k)
... 
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 python-3.x map-function

5
推荐指数
1
解决办法
1814
查看次数

标签 统计

python ×3

python-3.x ×2

list ×1

map-function ×1

python-2.7 ×1

zip ×1