获取TypeError:list indices必须是整数,而不是元组,不能找出原因

时间:2015-10-07 00:53:11

标签: python

阅读其他答案,但无法弄清楚如何将它们应用于我的问题:

class Dice:
    def __init__(self):
        self.dice = [0]*5
        self.rollAll()
    def roll(self, which):
        for pos in enumerate(which):
            self.dice[pos] = random.randrange(1,7)
    def rollAll(self):
        self.roll(range(5))
    def values(self):
        return self.dice[:]
    def counts(self):
        # Create counts list
        counts = [0] * 7
        for value in self.dice:
            counts[value] = counts[value] + 1
        # score the hand

不知道导致此错误的原因 - 我从其他帖子中收集到这与我输入自我位置线的方式有关但是,再一次,无法弄明白究竟是什么是错误的。你们有人可以帮忙吗?谢谢!

1 个答案:

答案 0 :(得分:3)

    for pos in enumerate(which):
        self.dice[pos] = random.randrange(1,7)

enumerate返回一个需要解包的元组(索引,值):

    for idx, pos in enumerate(which):
        self.dice[idx] = random.randrange(1,7)