我需要以字符串形式生成 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條經驗 獲得超6個贊
你可以這樣做:
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
提交
取消