Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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_Python 3.x - Fatal编程技术网

Python 分配给变量列表索引时超出范围?

Python 分配给变量列表索引时超出范围?,python,python-3.x,Python,Python 3.x,我尝试了这个方法,当我为n输入input of 5,lis为24689时,它表示在a=lis[n]的行中有一个错误,表示列表索引超出范围。问题可能出在该行上 n = int(input()) numb = input() lis = list(map(int, numb.split())) lis.sort() a = lis[n] for i in (0,len(lis)): if lis[i]=[a] print (lis[i-1]) 列表以零为基础,因此有效索引从

我尝试了这个方法,当我为n输入input of 5,lis为24689时,它表示在a=lis[n]的行中有一个错误,表示列表索引超出范围。

问题可能出在该行上

n = int(input())
numb = input()
lis = list(map(int, numb.split()))
lis.sort()
a = lis[n]
for i in (0,len(lis)):
    if lis[i]=[a]
        print (lis[i-1])
列表以零为基础,因此有效索引从
0
len(lis)-1
len(lis)
确实超出范围

另外,请注意,上面的代码行表示
i
将只接收2个值-
0
len(lis)
。这就是你真正的意思吗?如果你想检查所有的索引,你需要

for i in (0,len(lis)):

range(n)
是一个迭代器,它返回从
0
n-1

的值。此代码有几个问题。首先,您需要将for语句更改为
for i in range(0,len(lis))
,因为您当前没有调用range函数

此外,在第一次迭代中,它将尝试访问索引-1,这是列表中的最后一个元素。更好的方法是将范围函数更改为
range(0,len(lis)-1)
,并将最后一行的print语句更改为
print(lis[i])
,以解决使用索引-1接收最后一个元素的问题


另外,欢迎来到Stack Overflow

python索引从0开始。包含5个元素的列表只有从0到4的索引。当
i=0
时,对于
lis[i-1]
您认为它应该是什么?
a=lis[n]
中还有一个错误。尝试学习Python中的索引
for i in range(len(lis)):