如何将字符串转换为数字的二进制表示形式?

时间:2019-04-15 05:01:23

标签: python python-3.x

我正在编写一个程序,其中输入将是一或零的列表(或数组)(例如[0,0,1,0]),而输出将等于列表的二进制值( 0010 for 2)。

代码在这里

def binary_array_to_number(arr):
     arr = []
     binary_rep = "0b" #prefix of a binary representation

     for x in arr: # iterating through each part of the list(input)

       binary_rep += str(x) # concatenating each part of the list

     return int(binary_rep) # return the respective number of the binary representation

不幸的是,我收到一个下面提到的错误。

因此,我想知道我要去哪里错了。

1 个答案:

答案 0 :(得分:0)

您将在函数的第一行中重置输入arr,这意味着它不在乎输入是什么。此外,循环中的字符串串联可能是一个巨大的性能问题。

尝试

def binary_array(arr):
    binary_rep = "0b{}".format(''.join([str(x) for x in arr]))
    return int(binary_rep, 2)

print(binary_array([0,1,1,0]))
相关问题