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