n = int(input())
a = []
i=0
for i in xrange(n) :
a.append(raw_input())
c=0
j=0
for j in range(0, len(a)) :
if a[j] is a[j+1] :
c=c+1
else :
print a[j-1], c
c=0
当我在代码编辑器中运行此代码时,编译器会出错
if a[j] is a[j+1]:
IndexError: list index out of range
任何人都可以告诉我它的错误是什么?
答案 0 :(得分:4)
问题是你超出了列表的长度。要将此更改len(a)
修改为len(a)-1
:
for j in range(0, len(a)-1)
答案 1 :(得分:1)
如果您有list = [0, 1, 2, 3, 4]
并且您运行for i in range(len(list))
,则会i = 0
转到i = 4
。
list[4]
为您提供4
但list[5]
i+1
不存在。
因此,在您的代码中,您应该将for j in range(0, len(a)) :
更改为for j in range(len(a)-1):
此外,您不需要范围内的0
,因为python会假设。{/ p>
答案 2 :(得分:1)
实际上,您不需要在for循环中添加0
:
for j in range(len(a)-1) :
这样会产生从0
到len(a)-2
答案 3 :(得分:0)
在python列表索引中从0开始。 因此,对于具有n个项目的列表,最后一个项目的索引将是[n-1]