У меня есть большой список списков (импортированных из CSV) со строкой заголовка. Первые три строки, включая заголовок, выглядят так. В каждой строке есть намного больше элементов, но я урезал ее для удобства чтения.LIst из списков python - ссылки на конкретные местоположения/подсети для резки
[('Div', 'Date', 'HomeTeam', 'AwayTeam', 'FTHG', 'FTAG'),
('E0', '18/08/12', 'Arsenal', 'Sunderland', '0', '0'),
('E0', '18/08/12', 'Fulham', 'Norwich', '5', '0')... ]
Это для статистики пакет хобби футбола, что у меня было/есть в первенствовать и хотел сделать на основе веб, так что я что-то реальное, чтобы работать на как я узнал питона. У меня есть ряд средних значений, которые я хочу рассчитать, поэтому хочу сопоставить домашнюю команду в каждой строке и добавить значение в любой столбец, который я выбрал для текущей суммы, чтобы я мог выработать среднее значение. На самом деле простые слова, каждый раз, когда домашняя команда соответствует «Челси», скажем, я хочу добавить ее в свою текущую общую сумму, чтобы рассчитать среднее количество голов, которые они забили дома. Файл данных очень согласован, поэтому я знаю, что определенные переменные всегда будут в столбце 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 были прочитаны в список, списков.
Но это ничего не печатает - я взглянул на стандартную документацию на нем, но это не проливает свет. Я просто хочу, чтобы иметь возможность проходить через каждый подсписчик, проверить, соответствует ли команда, и если да, сделайте что-то с числом нескольких элементов. Я рассматривал это и различные решения примерно через день (более трех дней), поэтому я немного разочарован.
Это довольно необычно для команды в данных: если данные [2] == team: ... 'как вы думаете, что это делает? где определяется «данные»? –
Извините, данные определены ранее, я только что добавил, что в редактировании. Я хотел проверить, был ли элемент списка в столбце 2 файла данных той командой, в которой я в настоящее время смотрел. – Withnail
ОК. Я предположил, что 'data_file' был списком списков. Что такое 'data_file'? –