列表索引错误

时间:2018-10-28 12:55:48

标签: python list

我创建了一个程序,该程序将文件行读取到列表中。当我运行下面的代码时,我看到其中有一个包含元素的列表。

dogs_list_player = []
dogs_list_computer = []

with open("dogs.txt") as f:
    for i in range(Y):
        dogs_list_player.append(f.readline().splitlines())
        print(dogs_list_player)
    for i in range(Z):
        dogs_list_computer.append(f.readline().splitlines())
        print(dogs_list_computer)

结果是:

[['Tim']]
[['Tim'], ['Bob']]
[['Tim'], ['Bob'], ['Jess']]
[['Tim'], ['Bob'], ['Jess'], ['Bess']]
[['Tim'], ['Bob'], ['Jess'], ['Bess'], ['Tess']]
[['Dom']]
[['Dom'], ['Tom']]
[['Dom'], ['Tom'], ['Will']]
[['Dom'], ['Tom'], ['Will'], ['Ben']]
[['Dom'], ['Tom'], ['Will'], ['Ben'], ['Joe']]

但是当我添加这段代码时会出现问题:

dogs_list_player = []
dogs_list_computer = []

with open("dogs.txt") as f:
    for i in range(Y):
        dogs_list_player.append(f.readline().splitlines())
        print(dogs_list_player)
    for i in range(Z):
        dogs_list_computer.append(f.readline().splitlines())
        print(dogs_list_computer)

class Dog_card: 
    name  = ""
    friendliness = ""
    intelligence = ""
    exercise = ""
    drool = ""

    def printing_card(self):
        prnt_str = "Name:%s \nIntelligence:%s \nExercise:%s \nDrool:%s" %(self.name, self.friendliness, self.intelligence, self.exercise, self.drool)
        return prnt_str

player_card = Dog_card()
card_count = 0
player.name = dogs_list_player[0]#i think this is where the issue is happening

此代码的结果是:

IndexError: list index out of range

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

您的Dog_card类有一些错误: 您会忘记printing_card方法中的字符串中的“友好”参数,并且您的类中也没有任何构造函数。

class Dog_card:

def __init__(self):
    self.name = ""
    self.friendliness = ""
    self.intelligence = ""
    self.exercise = ""
    self.drool = ""

def printing_card(self):
    prnt_str = "Name:%s \nIntelligence:%s friendliness:%s \nExercise:%s \nDrool:%s" %(self.name, self.friendliness, self.intelligence, self.exercise, self.drool)
    return prnt_str

应该工作。