数据结构是一个字典,每个值都是另一个字典,例如:
>>> from lib import schedule
>>> schedule = schedule.Schedule()
>>> game = schedule.games[0]
>>> game.home
<lib.schedule.Team instance at 0x9d97c6c>
>>> game.home.lineup
{'guerv001': {'HR': 392, '1B': 1297}, 'kendh001': {'HR': 12, '1B': 201}, 'andeg001': {'HR': 272, '1B': 1572}, 'mattg002': {'HR': 104, '1B': 632}, 'figgc001': {'HR': 26, '1B': 672}, 'iztum001': {'HR': 16, '1B': 253}, 'huntt001': {'HR': 213, '1B': 834}, 'quinr002': {'HR': 23, '1B': 200}, 'napom001': {'HR': 46, '1B': 96}}
希望团队有一个方法getTotals(self,category),如果您调用:
^{pr2}$在这种情况下,该方法将产生:
1104
基本上你可以看到我在做什么。有什么想法吗?在
更新:我使用了两种列表理解方法,但希望将其简化为一种:
def getTotals(self, category):
cats = [x for x in self.lineup.values()]
return sum([x[category] for x in cats])
另一个更新:基于inspectorg4dget的有用反馈,我得到了它。谢谢!在
def getTotals(self, category):
return sum(self.lineup[man][category] for man in self.lineup.keys())
最终更新:根据Nadia的反馈,以下是另一种方法:
def getTotals(self, category):
return sum(value.get(category, 0) for value in self.lineup.values())
可以使用生成器表达式:
我使用dict.get在任何字典中缺少该类别时将其设为默认值0。在
自我版本:
^{pr2}$有点啰嗦,但是我。请注意第一个参数,即实例。现在,如果希望它成为所有团队对象的一部分,则需要修改类:
^{pr2}$这应该将所述对象添加到类定义中,并使现有对象能够从此处使用它。我编写了一些Python已经有几个月了,但它应该可以工作。在
相关问题 更多 >
编程相关推荐