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 在列表中添加两项时出现索引错误_Python - Fatal编程技术网

Python 在列表中添加两项时出现索引错误

Python 在列表中添加两项时出现索引错误,python,Python,所以,我有8个随机生成的数字,都是用ct[I]引用的。我想添加一个编号(ct[I])和ct[I+1]引用的编号。但是,这会产生列表索引超出范围的错误。怎么了 for i in range(totrange): tot1 = ct[i] + ct[i+1] totrange通常是8,但我希望有一点灵活性。如果totrange是8并且ct包含8个元素,最后一次ct[I+1]调用将尝试从ct获取第9个元素,导致列表索引超出范围错误 因此,totrange不应大于len(ct)-1如果totr

所以,我有8个随机生成的数字,都是用
ct[I]
引用的。我想添加一个编号(
ct[I]
)和
ct[I+1]
引用的编号。但是,这会产生列表索引超出范围的错误。怎么了

for i in range(totrange):
    tot1 = ct[i] + ct[i+1]

totrange
通常是8,但我希望有一点灵活性。

如果
totrange
是8并且
ct
包含8个元素,最后一次
ct[I+1]
调用将尝试从
ct
获取第9个元素,导致列表索引超出范围错误


因此,
totrange
不应大于
len(ct)-1
如果
totrange
为8且
ct
包含8个元素,则最后一次
ct[i+1]
调用将尝试从
ct
获取第9个元素,导致列表索引超出范围错误


因此,
totrange
不应大于
len(ct)-1
您可能应该使用
range(len(ct)-1)
来处理此问题,对于最后一个
i
i+1
是大于
ct
的最后一个索引的值

示例:

In [30]: ct=range(5)     #ct =[0,1,2,3,4]

In [31]: for i in range(len(ct)-1):
    print(ct[i]+ct[i+1])
   ....:     
1
3
5
7
或者最好使用基于
zip()
的解决方案,根本不需要使用索引:

In [32]: for x,y in zip(ct,ct[1:]):
    print (x+y)
   ....:     
1
3
5
7

您可能应该使用
range(len(ct)-1)
来处理此问题,对于最后一个
i
i+1
是大于
ct
的最后一个索引的值

示例:

In [30]: ct=range(5)     #ct =[0,1,2,3,4]

In [31]: for i in range(len(ct)-1):
    print(ct[i]+ct[i+1])
   ....:     
1
3
5
7
或者最好使用基于
zip()
的解决方案,根本不需要使用索引:

In [32]: for x,y in zip(ct,ct[1:]):
    print (x+y)
   ....:     
1
3
5
7

所以您要将
ct
中的最后一个元素添加到。。。什么?当
i
7
(如果
totrange
通常为
8
)时,
ct[i+1]
将不受限制。因此您将
ct
中的最后一个元素添加到。。。什么?当
i
7
(如果
totrange
通常为
8
)时,
ct[i+1]
将不受限制。它不应该是“
totrange
永远不应该大于
len(ct)-1
”(以便
i
永远不大于
len(ct)-2
)?不应该
len([0,1])
是2,这意味着
(len([0,1])-1)+1
是2,这是超出范围的索引
(len([0,1])-2)+1
为1,因此不会超出范围。您似乎缺少
范围(totrange)
部分。如果
totrange
len(ct)-1
(即7),
i
最大值将是
6
,并且
6+1
是一个有效的
ct
索引。它不应该是“
totrange
永远不应该大于
len(ct)-1
”(以便
i
永远不大于
len(ct)-2
)?否
len([0,1])
是2,这意味着
(len([0,1])-1)+1
是2,这是超出范围的索引
(len([0,1])-2)+1
为1,因此不会超出范围。您似乎缺少
范围(totrange)
部分。如果
totrange
len(ct)-1
(即7),
i
最大值将是
6
,并且
6+1
是有效的
ct
索引。