Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么这段代码在某些情况下会引发Indexer错误?_Python_List_Python 3.x_Indexing - Fatal编程技术网

Python 为什么这段代码在某些情况下会引发Indexer错误?

Python 为什么这段代码在某些情况下会引发Indexer错误?,python,list,python-3.x,indexing,Python,List,Python 3.x,Indexing,我的功能是这样的: 输入: 8 输出: ['000', '001', '010', '011', '100', '101', '110', '111'] 这就是创建一个列表来存储从0开始的输入二进制数。 这是我的代码(正确版本): 这段代码运行良好。但如果我更改了一行代码: list_Bin = [None] * input_num 到 它将提高索引器 我真的很想知道为什么,因为我已经多次遇到这个问题。空列表就像0;不管你把它乘以什么,答案仍然是一个空列表 >>> []

我的功能是这样的:

输入:

8
输出:

['000', '001', '010', '011', '100', '101', '110', '111']
这就是创建一个列表来存储从0开始的输入二进制数。 这是我的代码(正确版本):

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

list_Bin = [None] * input_num

它将提高索引器


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

空列表就像0;不管你把它乘以什么,答案仍然是一个空列表

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

[][x]
将为任何值
x
生成一个
索引器
[None]
[]
之间存在差异
[None]
是一个包含一个成员的列表,该成员为
None
。但是
[]
是一个成员为零的空列表

当您执行
[None]*input_num
操作时,您将创建一个包含
None
成员的新列表,其次数为
input_num


但是当您执行
[]*input_num
操作时,没有成员可以开始。因此,您仍然有一个空列表,自然无法编制索引。

Wow!我得到了它!这太清楚了!所以,如果我想给空列表值,唯一的方法是.append?非常感谢您的回答;)是的,空列表与其他列表一样;它只是没有任何值。你可以用len来计算它的长度(和其他任何列表一样,一个有效的索引
i
0谢谢你的帮助!但是我可以用.append来给空列表赋值吗?@MarsLee很高兴见到你。;)是的,空列表是一个列表,因此你可以像其他列表一样,用一个项目来附加它!谢谢你昨天帮助我!我完全明白了!谢谢:)@MarsLee好极了是的,正如你所说,我们很快又见面了。。。祝您今天过得愉快!我相信我们很快就会再见面,因为我还有很多问题哈哈。希望你有一个美好的一天:)
list_Bin = [] * input_num
>>> [] == []*8
True