我有一个列表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']