Я пытаюсь сделать некоторые основные вычисления с данными из Интернета. По этой причине я нашел некоторый код, который извлекает начальные и конечные годы для работ Рембрандта. Сохраняет его в списке
date_list =[(work['datebegin'], work['dateend']) for work in `rembrandt2_parsed['records']]`
date_list - список кортежей с начальным и конечным годами для некоторых работ Рембрандта в Гарвардском художественном музее. Для полноты картины это выглядит так:
[(0, 0), (1648, 1648), (1637, 1647), (1626, 1636), (0, 0), (1638, 1638), (1635, 1635), (1634, 1634), (0, 0), (0, 0)]
Теперь я хочу сделать некоторые базовые вычисления, Я хочу подвести итог по этому списку кортежей и вычислить среднее число лет, когда они не равны . Я придумал решение:
datebegin =0
date_end =0
count_begin =0
count_end =0
for x, y in date_list:
if x !=0:
datebegin +=x
count_begin +=1
if y != 0:
date_end +=y
count_end +=1
final_date_begin = datebegin/count_begin #value = year 1636
final_date_end = date_end/count_end #value = year 1639
Но я думаю, что это можно сделать гораздо эффективнее / питоничнее. Во-первых, потому что мне кажется, что для такой простой задачи мне нужно много кода, а во-вторых, потому что мне нужно инициализировать 4 (!) Глобальных переменной, если я делаю это таким образом. Может ли кто-нибудь просветить меня и показать мне более эффективный способ решения этой проблемы?