如何将数字列表转换为十进制格式



mask = [11111111, 11111111, 11111111, 00000000]->255.255.255.0

底线是它是一个列表。我不知道是否可以在括号中写一些类似"dec"的东西,并应用.format。将元素列表转换为字符串并将int应用于每个元素的二进制代码也是有问题的。

print('{0:dec}.{1:dec}.{2:dec}.{3:dec}'.format(*mask))-这当然不起作用,只是为了理解我想做什么。

如果可能的话,我希望避免对列表进行迭代(如果在中(。

您的列表包含看起来像二进制数的整数。因此:

mask = [11111111, 11111111, 11111111, 00000000]
print('.'.join(str(int(str(e), 2)) for e in mask))

输出:

255.255.255.0

您可能需要应用map((函数。

mask = [11111111, 11111111, 11111111, 00000000] #-> 255.255.255.0
mapped = list(map(lambda x: int(str(x),2), mask))
print(mapped)

输出:

[255, 255, 255, 0]

然后您可以格式化字符串:

print('.'.join(str(e) for e in mapped))

输出:

255.255.255.0

最新更新