gpt4 book ai didi

python - 为什么这段代码在某些情况下会引发 IndexError?

转载 作者:太空宇宙 更新时间:2023-11-03 13:38:26 24 4
gpt4 key购买 nike

我的函数是这样的:

输入:

8

输出:

['000', '001', '010', '011', '100', '101', '110', '111']

所以这是创建一个列表来存储从 0 开始的 input_number 二进制数。这是我的代码(正确版本):

import math

input_num = 8
max_bit = math.ceil(math.log(input_num, 2))

list_Bin = [None] * input_num

for i in range(input_num):
extra_d = max_bit - len(bin(i)[2:])
list_Bin[i] = '0'*extra_d + bin(i)[2:]

print(list_Bin)

这段代码运行良好。但是如果我更改一行代码:

list_Bin = [None] * input_num

list_Bin = [] * input_num

它会引发 IndexError。

我真的很想知道为什么,因为我遇到过很多次这个问题。

最佳答案

一个空列表就像0;无论你将它乘以什么,答案仍然是一个空列表。

>>> [] == []*8
True

[][x] 将为任何值 x 引发 IndexError

关于python - 为什么这段代码在某些情况下会引发 IndexError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35857913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com