Python 为什么这段代码可以创建一个二进制数列表?
代码如下:Python 为什么这段代码可以创建一个二进制数列表?,python,Python,代码如下: def bin_list(bit_len): list_len = 2 ** bit_len return ['{0:0{1}b}'.format(i, bit_len) for i in range(list_len)] print(bin_list(3)) 输出: ['000', '001', '010', '011', '100', '101', '110', '111'] 所以这段代码可以创建一个二进制数字列表 我的主要问题是: '{0:0{1}b}'.
def bin_list(bit_len):
list_len = 2 ** bit_len
return ['{0:0{1}b}'.format(i, bit_len) for i in range(list_len)]
print(bin_list(3))
输出:
['000', '001', '010', '011', '100', '101', '110', '111']
所以这段代码可以创建一个二进制数字列表
我的主要问题是:
'{0:0{1}b}'.format(i, bit_len)
我不知道这意味着什么。它是正则表达式还是什么?请参阅python
:
前面的值指定要格式化的字段(在本例中为0,因此为第一个参数)
冒号后面的值指定格式。在这里它变得很花哨。首先,b
指定二进制渲染
'{0:b}'.format(2) == '10'
然后可以指定最小宽度,该宽度取自第二个参数:
'{0:5b}'.format(2) == ' 10'
'{0:{1}b}'.format(2, 5) == ' 10'
最后,您可以在宽度前添加一个0,表示填充应该是0
s,而不是空格:
'{0:05b}'.format(2) == '00010'
'{0:0{1}b}'.format(2, 5) == '00010'
参见python
:
前面的值指定要格式化的字段(在本例中为0,因此为第一个参数)
冒号后面的值指定格式。在这里它变得很花哨。首先,b
指定二进制渲染
'{0:b}'.format(2) == '10'
然后可以指定最小宽度,该宽度取自第二个参数:
'{0:5b}'.format(2) == ' 10'
'{0:{1}b}'.format(2, 5) == ' 10'
最后,您可以在宽度前添加一个0,表示填充应该是0
s,而不是空格:
'{0:05b}'.format(2) == '00010'
'{0:0{1}b}'.format(2, 5) == '00010'
它将
i
转换为二进制表示,然后用零填充字符串。此处位长度
将是最小字段宽度。它将i
转换为二进制表示,然后用零填充字符串。此处位长度
将是最小字段宽度。这真的很有帮助!谢谢!:)这真的很有帮助!谢谢!:)