例子:
for x in iterable1:
expression
该map
形式是:
map(lambda x: expression, iterable1)
如何仅使用map
列表推导和不使用列表推导将其扩展到嵌套的for循环?
例子:
for x in itr1:
for y in itr2:
expr
忍受我这一件事。没有解释,但这在2天后起作用。仅使用地图和列表。这是错误的代码。欢迎缩短代码的建议。Python 3解决方案
使用列表推导的示例:
>>> a=[x+y for x in [0,1,2] for y in [100,200,300]]
>>> a
[100,200,300,101,201,301,102,202,302]
示例用于:
>>>a=[]
>>>for x in [0,1,2]:
... for y in [100,200,300]:
... a.append(x+y)
...
>>>a
[100,200,300,101,201,301,102,202,302]
现在仅使用地图的示例:
>>>n=[]
>>>list(map(lambda x:n.extend(map(x,[100,200,300])),map(lambda x:lambda y:x+y,[0,1,2])))
>>>n
[100,200,300,101,201,301,102,202,302]
小得多的python2.7解决方案:
>>>m=[]
>>>map(lambda x:m.extend(x),map(lambda x:map(x,[100,200,300]),map(lambda x:lambda y:x+y,[0,1,2])))
>>>m
[100,200,300,101,201,301,102,202,302]
另一个变化:我通过电子邮件发送给Mark Lutz,这是他的解决方案。这不使用闭包,并且最接近嵌套的for循环功能。
>>> X = [0, 1, 2]
>>> Y = [100, 200, 300]
>>> n = []
>>> t = list(map(lambda x: list(map(lambda y: n.append(x + y), Y)),X))
>>> n
[100,200,300,101,201,301,102,202,302]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句