为什么我的列表列表中的所有索引都是0?

时间:2016-01-19 07:53:22

标签: python list indexing

我想要带有卡座和卡片的闪卡软件。我创建了一个通用列表all_decks。我为甲板创建了一个类:

 class deck(list): 
    def __init__(self, name):
            self.name = name
    def open_deck(self):
            print "This is your deck %s: " %(self.name)
            print "This deck has %s cards." %(len(self)) 
            return self

然后使用用户输入创建名称并附加到all_decks的卡组。这是打印它们的功能:

def print_decks():                                                      
    print "You have %s decks: " %(len(all_decks))
    for x in all_decks:
            print all_decks.index(x), x.name

这会打印所有套牌的列表,但所有索引看起来都是0.为什么?另外我以为我会使用索引作为“开放式甲板”和“删除甲板”功能,但它不起作用。

1 个答案:

答案 0 :(得分:2)

你误解了index()的作用。它返回列表中与您的目标匹配的第一个元素的索引。但你从未定义过比较套牌的方法。

你真的不想在这里使用索引。相反,请使用enumerate计算:

for i, x in enumerate(all_decks):
        print i, x.name