我想用二进制数的单独数字组成列表,但它... shows this
>>> [int(x) for x in bin(123)]
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "<interactive input>", line 1, in <listcomp>
ValueError: invalid literal for int() with base 10: 'b'
>>>
bin
提供二进制数的字符串表示形式,并带有0b
部分,表明这是一个二进制数。>>> bin(123)
'0b1111011'
转换回整数需要使用字符串切片跳过此部分:
>>> [int(x,2) for x in bin(123)[2:]] [1, 1, 1, 1, 0, 1, 1]
请注意,以2为基数的解析实际上不是必需的。您可以使用bool
来获取真实的布尔值:
>>> [bool(x) for x in bin(123)[2:]] [True, True, True, True, True, True, True]