首页 > 解决方案 > 将一个值与列表一起传递给python中的地图

问题描述

我试图将math.pow具有 2 的幂的函数映射到一个列表,但问题是我应该传递一个可迭代的,而不仅仅是一个值。所以,我通过制作一个与我的列表长度相同的 2s 列表来修复它:

import math
lis = [1,2,3,4]
squred_lis = list(map(math.pow, lis, [2,2,2,2]))
print (squred_lis)

那么,有没有办法我可以只传递一个值并将它作为第二个参数传递给每个迭代?

标签: pythondictionary

解决方案


我想你要找的是itertools.repeat(). 它将无限重复该值,map()并将根据需要迭代它们中的任意多个以匹配lis.

import math
import itertools

lis = [1,2,3,4]
squared_lis = list(map(math.pow, lis, itertools.repeat(2)))
print(squared_lis)

产生:

[1.0, 4.0, 9.0, 16.0]

推荐阅读