任意输入一个含有0和1的列表,
现在需要把是1的元素写成2的x次方,x取决于1的index,如果元素是0,就不用改变。
从列表中的最后一个元素开始是2^0,依次向左边是[2^x, 2^(x-1),......,2^2,2^1,2^0]
例如:[0,1,1,0,1,0] 应该返回 [0,16,8,0,2,0] (注: 所对应的是 [0, 2^4 , 2^3 , 0,2^1 , 0] )
[0,1,0,1]返回[0, 4, 0, 1]
这个就是二进制转十进制嘛。
sa=[0,1,0,1]
da=[0]*len(sa)
for i in range(0,len(sa)):
da[i] = (sa[i]*2**(len(sa)-i-1))
print(da)
a=[0,1,1,0,1,0]
[0 if val==0 else pow(2,len(a)-i-1) for i, val in enumerate(a)]
@规则边缘 可以简化下,用 Python List Comprehensions: