_Aulfa_ 2021-03-15 13:59 采纳率: 75%
浏览 79
已采纳

python 把列表中为1的元素替换为2的x次方

任意输入一个含有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]

           


 
  • 写回答

3条回答 默认 最新

  • 规则边缘 2021-03-15 14:24
    关注

    这个就是二进制转十进制嘛。

    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)
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?