使用列表元素作为指数的 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
给定一个包含整数的列表:
>>> 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