如何解决列表索引超出范围
| 我编写了一个程序,确保每个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\'
查看清单文件
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。