2024-04-23 21:07:54 发布
网友
有什么好的方法可以将双参数函数map转换成一个值列表,其中第一个参数是常量,第二个参数取自list?
map
list
示例:
lambda x,y: x+y x='a' y=['2','4','8','16']
预期结果:
['a2','a4','a8','a16']
注:
Python 2.x
from itertools import repeat map(lambda (x, y): x + y, zip(repeat(x), y))
Python 3.x
map(lambda xy: ''.join(xy), zip(repeat(x), y))
你也可以用闭包
x='a' f = lambda y: x+y map(f, ['1', '2', '3', '4', '5']) >>> ['a1', 'a2', 'a3', 'a4', 'a5']
您可以使用itertools.starmap
itertools.starmap
a = itertools.starmap(lambda x,y: x+y, zip(itertools.repeat(x), y)) a = list(a)
你得到了你想要的结果。
顺便说一下,itertools.imap和Python3的map都接受以下内容:
itertools.imap
itertools.imap(lambda x,y: x+y, itertools.repeat(x), y)
默认Python2的map不会在y结尾处停止,而是插入Nones。。。
y
None
但是理解力要比理解力强得多
[x + num for num in y]
Python 2.x
Python 3.x
你也可以用闭包
您可以使用
itertools.starmap
你得到了你想要的结果。
顺便说一下,
itertools.imap
和Python3的map
都接受以下内容:默认Python2的
map
不会在y
结尾处停止,而是插入None
s。。。但是理解力要比理解力强得多
相关问题 更多 >
编程相关推荐