如何使用 bin() 方法在 python 中将列表的所有元素转换为二进制



我有一个列表numbers = ['1', '5', '10', '8'],我想将此列表的每个元素转换为二进制。我试过这段代码,但它不起作用

numbers = ['1', '5', '10', '8']
newl=[]
for i in numbers:
    newl.append(bin(i))
print(newl)

我该怎么做?

由于您的列表包含字符串,因此您必须先将它们转换为整数:

numbers = ['1', '5', '10', '8']
newl=[]
for i in numbers:
    newl.append(bin(int(i))[2:])
print(newl)  # -> ['1', '101', '1010', '1000']

或者在一行中列出理解:

print([bin(int(i))[2:] for i in numbers])    # -> ['1', '101', '1010', '1000']

对于 int 提供一个整数而不是字符串和 bin 前缀 0b,因此我们可以在需要时使用 [2:] 将其删除。

>>> list(bin(int(each))[2:] for each in  ['1', '5', '10', '8'])
['1', '101', '1010', '1000']

最新更新