数据结构是一个字典,每个值都是另一个字典,如:
>>> from lib import schedule
>>> schedule = schedule.Schedule()
>>> game = schedule.games[0]
>>> game.home
>>> 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}}
希望Team有一个方法getTotals(self,category),如果你调用了它:
game.home.getTotals('HR')
在这种情况下,该方法会产生:
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())