使用列表元素作为指数的 2^x 之和

Sum of 2^x using elements of a list as exponents

给定一个包含整数的列表:

>>> print mylist
[0, 1, 2]

我可以计算 2^0 + 2^1 + 2^2 的总和吗?基数 (2) 是固定的,它不会改变,我只是使用列表的元素作为指数

相关疑惑:

列表适合我要做的事情吗?

尝试

mylist = [0,1,2]
sum(2**i for i in mylist)

当然是。

mylist = [0, 1, 2]
print sum([2**x for x in mylist])

输出:

7
mylist = [0,1,2]
mysum = 0
for i in mylist:
    mysum = mysum + 2**i


>>> print mysum
7

您可以简单地使用 map()lambda 表达式作为 :

print sum(map(lambda x:2**x, mylist))
>>> 7

我猜你可以使用list,但是,鉴于其元素的线性性质,最好只使用[=12] =]对象:

mynum = 2
mysum = sum(2**x for x in range(mynum+1))

另一种不使用列表的方法是:

x=0 for i in range(0,3): x= x + pow(2,i) print "%d" % x