Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List - Fatal编程技术网

Python为什么获取列表索引超出范围错误?

Python为什么获取列表索引超出范围错误?,python,list,Python,List,我正在将一个变量设置为列表的第I个元素,但即使在第一次迭代中也会出现超出范围的错误 # code the max() function def maxinlist(yourlist): first = 0 second = 0 duplicatelist = yourlist for i in range(0, len(yourlist) - 1): first = yourlist[i] for j in range(len

我正在将一个变量设置为列表的第I个元素,但即使在第一次迭代中也会出现超出范围的错误

# code the max() function


def maxinlist(yourlist):
    first = 0
    second = 0
    duplicatelist = yourlist
    for i in range(0, len(yourlist) - 1):
        first = yourlist[i]

        for j in range(len(yourlist) - 1, 0, -1):
            second = yourlist[j]

            if second > first:
                duplicatelist.pop(i)
            elif first > second:
                duplicatelist.pop(j)

    print(duplicatelist[0])


mylist = [1, 4, 8, 2, 5, 100, 44, 2, 5]
maxinlist(mylist)

更改
duplicatelist

更改以下内容

duplicatelist = yourlist


在python中,变量名是指针。它们不反映实际的内存空间,如C或C++。
duplicateList=yourList
这里两个指针指向相同的内存空间。改变一个变量也会影响另一个变量

duplicatelist = yourlist.copy()

这也将为duplicateList创建一个新的内存空间。

您需要
duplicateList=yourlist.copy()
;否则,您的
duplicatelist
更改将反映在
yourlist
中。或者:
duplicatelist=list(yourlist)
duplicatelist = yourlist.copy()