我正在编写一个程序,其中输入将是一或零的列表(或数组)(例如[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
不幸的是,我收到一个下面提到的错误。
因此,我想知道我要去哪里错了。
答案 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]))