Python列表分配索引超出范围

时间:2016-11-24 03:31:09

标签: python list indexing

我无法理解为什么我的列表超出范围。

我现在一直坚持这个问题,不能解决问题所在。

显然我是编程新手。

def list(self,filename):
    with open(filename, "r") as listTeams:
        teamCount = 0
        indexList = []
        unsortedList = []
        lines = listTeams.readlines()

        for line in open(filename):
            teamCount += 1

        listTeams.seek(0)

        for i in range(0, teamCount):
            tempStr = listTeams.readlines(i)
            tempStr = "".join(tempStr)
            indexList = tempStr.split(" ")
            for i in range(0,i):
                print(i)
                unsortedList[i] = Team(indexList[0], indexList[1], indexList[2], indexList[3], indexList[4], indexList[5], indexList[6])
                print(unsortedList[i])
    return

我收到此错误消息:

unsortedList[i] = Team(indexList[0], indexList[1], indexList[2], indexList[3], indexList[4], indexList[5], indexList[6])
IndexError: list index out of range

2 个答案:

答案 0 :(得分:1)

您无法为列出不存在的项目分配值。您可以使用这两种方法之一来解决此问题。 一,你可以使用这个命令unsortedList.append(Team(indexList [0],indexList [1],indexList [2])。 要么 其次,您可以使用命令unsortedList = numpy.zeros(i)创建一个列表apriori,其中包含与列表将包含的零一样多的零,它将创建一个包含i个零的列表,然后您可以使用您的代码替换这些零

答案 1 :(得分:0)

您无法分配到尚未存在的列表元素,您可以使用追加方法

unsortedList.append(Team(indexList[0], indexList[1], indexList[2], indexList[3], indexList[4], indexList[5], indexList[6]))

在通过索引len(indexList)访问之前还要检查数组中的项目数量给出数组中的项目数,在{{1}中获取项目0到6之前检查是否超过6 }

相关问题