如何使用python映射函数生成从0开始的2的前100次幂,并且不包括100次幂?

如何使用python映射函数生成从0开始的2的前100次幂,并且不包括100次幂?,python,python-2.7,Python,Python 2.7,怎么了。我不知道如何使用map函数来获得所需的答案pwr是一个函数。即使将其映射到列表上,pwr仍然是一个函数映射(pwr,范围(01100))是您想要的列表。您可以将其存储在变量中: def map_twos(): def pwr(x): return 2**x map(pwr, range(0, 100)) print pwr.get[2] return pwr map不修改现有的列表或函数,而是在结果上生成一个迭代器(在Python 3中

怎么了。我不知道如何使用map函数来获得所需的答案

pwr
是一个函数。即使将其映射到列表上,
pwr
仍然是一个函数<代码>映射(pwr,范围(01100))是您想要的列表。您可以将其存储在变量中:

def map_twos():
    def pwr(x):
        return 2**x 
    map(pwr, range(0, 100))
    print pwr.get[2]
    return pwr

map
不修改现有的列表或函数,而是在结果上生成一个迭代器(在Python 3中)。这意味着您需要存储
map
的结果,并最终将其转换为
列表
,您需要获得第n个元素(在Python 3中)


pwrs=map(lambda n:1您需要专门的map吗?是的。我需要用map来解决这个问题。阅读map的文档,它既不能执行,也不能在其他地方转换函数。@PauloBu的答案是正确的,只需要math.pow:
l=map(lambda x:math.pow(x,2),xrange(0,100))
我不知道您的具体情况,但是如果您不需要使用map,您可以执行类似于[I**2 for I in range(100)]的操作。对于Python3用户,
map
返回一个map对象,而不是列表,因此在这里订阅将不起作用。在您的情况下,使用
powers=list(map(pwr,range(0,100)))
@iCodez,这就是为什么我直接在“Python3用户”上以评论的形式发布了这篇文章。这并不是对OP的建议
powers = map(pwr, range(0, 100))
print powers[2]
return powers
pwrs = map(lambda n: 1 << n, xrange(100))
print pwrs[2]