Python 获取类型错误:列表索引必须是整数,而不是元组,可以';我不明白为什么
阅读此问题的其他答案,但不太明白如何将其应用于我的问题:Python 获取类型错误:列表索引必须是整数,而不是元组,可以';我不明白为什么,python,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)
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
不知道是什么原因导致了这个错误——我从其他类似的帖子中收集到,这与我键入self.dice位置行的方式有关,但同样,我无法找出到底是什么错误。你们谁能帮忙?谢谢
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)
enumerate返回需要解压缩的(索引、值)元组:
for idx, pos in enumerate(which):
self.dice[idx] = random.randrange(1,7)
enumerate返回需要解压缩的(索引、值)元组:
for idx, pos in enumerate(which):
self.dice[idx] = random.randrange(1,7)
enumerate返回需要解压缩的(索引、值)元组:
for idx, pos in enumerate(which):
self.dice[idx] = random.randrange(1,7)
我想他们可能想完全省略枚举;
rollAll
的示例是传递定义要滚动的位置的范围,因此索引并不重要;大概你可以调用.roll((3,2,5))
,它会按顺序滚动3,2和5(使用索引意味着它会滚动0,1和2,这似乎不正确);事实上,我最初有一个建议是直接迭代“which”的值,但由于不清楚“which”到底代表什么,我删除了这个建议;rollAll
的示例是传递定义要滚动的位置的范围,因此索引并不重要;大概你可以调用.roll((3,2,5))
,它会按顺序滚动3,2和5(使用索引意味着它会滚动0,1和2,这似乎不正确);事实上,我最初有一个建议是直接迭代“which”的值,但由于不清楚“which”到底代表什么,我删除了这个建议;rollAll
的示例是传递定义要滚动的位置的范围,因此索引并不重要;大概你可以调用.roll((3,2,5))
,它会按顺序滚动3,2和5(使用索引意味着它会滚动0,1和2,这似乎不正确);事实上,我最初有一个建议是直接迭代“which”的值,但由于不清楚“which”到底代表什么,我删除了这个建议;rollAll
的示例是传递定义要滚动的位置的范围,因此索引并不重要;大概你可以调用.roll((3,2,5))
,它会按顺序滚动3,2和5(使用索引意味着它会滚动0,1和2,这似乎不正确);事实上,我第一次有一个建议,直接迭代“which”的值,但因为不清楚where确切地表示“which”,我删除了这个建议。