列表索引超出范围

问题描述

| 我编写了一个程序,确保每个cookie在继续之前都具有5个以上的芯片。 但是,行“ 0”似乎有问题,因为它会产生“列表索引超出范围”错误。我以为
foo = []
创建了一个无尾的列表,所以我不明白为什么这个列表中的任何数字都超出范围。我究竟做错了什么?
cookie = []

...

for i in range(0,11):
    if cookie[i] > 5:
         break
    

解决方法

        尝试:
len(cookie)
您将看到是否没有放入大小为0的任何内容。使用
cookie = []
可以连续向列表中添加元素,但将其初始化为空。     ,        怎么样:
cookies = []

...

for cookie in cookies:
    if cookie > 5:
         break
    ,        您可能真的没有一个没有结尾的列表,假设您的情况中只有零。 但是,您可以创建一个包含11个零的列表:
cookies = [0] * 11
或者创建一个返回anything7的东西,如果您没有在索引中添加任何内容,则返回它:
import collections
cookies = collections.defaultdict(int)
请注意,这不是列表,而是地图。     ,        
cookie = []
创建没有数据的空列表,因此此处没有索引。您需要先用一些数据填充
cookie
(例如,使用
cookie.append(some_data)
)。     ,        
foo=[]
不会创建没有结尾的列表。而是,它创建一个空列表。 你可以做
for i in range(0,len(foo)):
    if(cookie[i]>5):
        break
或者你可以做
for c in cookie:
    if c>5:
        break
    ,        
foo = []
创建一个空列表,而不是没有结尾的列表。任何索引访问都将在一个空列表上失败。要检查列表的长度,请使用
len(mylist)
。空列表的长度为0,索引从零开始。所以:
cookie = []
len(cookie) == 0
cookie[0] ## will raise IndexError

cookie.append(\'something\')
len(cookie) == 1
cookie[0] ## will return \'something\'
查看清单文件