Вы начинаете с создания двух списков и добавления элементов. Итерация должна быть выполнена для каждого объекта в списке, каждый объект является самим словарем. Допустим, список, содержащий словари, называется full_list
, потому что называть его list
было бы не слишком удобно для python.
week_list = []
timing_list = []
for i in full_list:
week_list.append(i['week'])
timing_list.append(i['timing'])
Если есть словари с пустыми значениями или пустые словари или словари только с week
, но без timing
, например, я хотел бы использовать:
import numpy as np
for i in full_list:
try:
week_list.append(i['week'])
except KeyError:
week_list.append(np.nan)
try:
timing_list.append(i['timing'])
except KeyError:
timing_list.append(np.nan)
Таким образом, вы добавите значение NaN
в свой список, когда клавиша не существуют, и это окажется полезным, если вы позже выполните операции со списками.
Полный пример:
full_list = [{'week': 3, 'timing': '07:30'}, {'week': 4, 'timing': '20:30'},{},{'week':4},{'timing':'09:21'},{}]
week_list = []
timing_list = []
import numpy as np
for i in full_list:
try:
week_list.append(i['week'])
except KeyError:
week_list.append(np.nan)
try:
timing_list.append(i['timing'])
except KeyError:
timing_list.append(np.nan)
print(week_list)
print(timing_list)
Вывод:
[3, 4, nan, 4, nan, nan]
['07:30', '20:30', nan, nan, '09:21', nan]
Редактировать:
Если словарь похож на следующий:
full_dict = {'person_1':{'week': 3, 'timing': '07:30'},'person_2':{'week': 4, 'timing': '20:30'},'person_3':{}}
Итерация должна выполняться для каждого key
. Следовательно, l oop будет:
for i in full_dict.keys():
and exactly the same code as before