Вам нужно создать np.array
за пределами вашего for-l oop и, наконец, добавить к нему все даты:
with open('dblp-2020-04-01.xml', 'r', encoding="ISO-8859-1") as f:
data_list = np.array([])
for i, line in enumerate(f):
if "<year>" in line:
data = line[6:10]
data_list = np.append(data_list, data)
print(data_list)
И результат будет
['2010', '2002', '1992', '2002', '1994']
Наконец, вы можете отсортировать массив, используя numpy.sort()
:
np.sort(data_list) # Ascending order
>>> ['1992', '1994', '2002', '2002', '2010']
ОБНОВЛЕНИЕ
Хорошо, так учитывая сценарий, который вы описываете в комментариях, я бы сказал, что наиболее эффективный способ получить счет за дату из ваших XML данных - это загрузить XML в pandas фрейм данных и, наконец, используйте
df['yourDatesColumn'].groupby('yourDatesColumn').count()
или
df['yourDatesColumn'].value_counts()
, чтобы получить счет за дату.
В качестве альтернативы, вы можете создать объект pandas.Series
просто для столбца даты (если вы не хотите загружать все данные в pandas кадр данных).