我有一个较大的列表列表(从 CSV 导入),带有标题行。包括标题在内的前三行如下所示。每行中有更多元素,但为了便于阅读,我已将其截断。
[('Div', 'Date', 'HomeTeam', 'AwayTeam', 'FTHG', 'FTAG'),
('E0', '18/08/12', 'Arsenal', 'Sunderland', '0', '0'),
('E0', '18/08/12', 'Fulham', 'Norwich', '5', '0')... ]
这是我在 excel 中拥有/拥有的一个爱好足球统计数据包,并且想要基于网络,所以当我学习 python 时,我有一些真正的工作要做。我有许多要计算的平均值,所以想在每一行中匹配主队,并将我选择的任何列中的值添加到运行总数中,这样我就可以计算出平均值。简单来说,每次主队对阵“切尔西”时,我都想把它加到我的跑分中来计算他们在主场的平均进球数。数据文件非常一致,所以我知道特定变量将始终位于第 4 列、第 5 列或其他列中。
def CalcAverageHome(team, column, data_file):
total = 0
count = 0
for team in data:
if data[2] == team:
print data_file[4]
#total += data[4]
count += 1
else:
pass
average = total / 5
return
print "Here's the Average"
print CalcAverageHome("Chelsea", 4, data)
当我运行该代码时,它为我提供了第四个列表(顶级列表),即
('E0', '18/08/12', 'QPR', 'Swansea', '0', '5'...
我开始尝试使用itertools
,但即使只是迭代列表以将其打印为调试器也不起作用(我想确保它在我去的时候工作)
print "Let's try this with itertools"
def chain(*iterables):
for it in iterables:
print it
for element in it:
yield element
print element
chain(data)
data
是从 CSV 读取数据的变量,列表列表。
但这并没有打印任何东西——我已经查看了它的标准文档,但它并没有透露任何信息。我只是希望能够遍历每个子列表,检查团队是否匹配,如果匹配,则对几个元素的数字做一些事情。我一直在研究这个和各种解决方案大约一天(超过三天),所以我有点沮丧。