我需要以字符串形式生成 000-111 之间的所有二进制数,我的第一种方法如下所示。然而,让我震惊的是,这一定是一种非常低效的方法。请问有没有更好的方法,它们如何更有效率? # print all binary numbers from 000 - 111 for i in range(2): for j in range(2): for k in range(2): value = f'{i}{j}{k}' print(value)
3 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
你可以这样做:
for i in range(8):
s = bin(i)[2:]
print(s.zfill(3))
输出
000
001
010
011
100
101
110
111
慕码人8056858
TA贡献1803条经验 获得超6个赞
你可以用这个;
>>> ['{:03b}'.format(i) for i in range(8)]
['000', '001', '010', '011', '100', '101', '110', '111']
>>> ['{:03b}'.format(i) for i in range(2,8)]
['010', '011', '100', '101', '110', '111']
只需要将范围转换为十进制。
添加回答
举报
0/150
提交
取消