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
转换为二进制表示,然后用零填充字符串。此处
位长度
将是最小字段宽度。这真的很有帮助!谢谢!:)这真的很有帮助!谢谢!:)