Для меня ответ заключается в понимании слов, вложенных в понимание списков.Обратите внимание, что этот фрагмент кода полагается на то, что входные данные - это словарь со всем списком одинаковой длины!
Чтобы проверить это, выполните:
n = len(list(input.values())[0]
all_length_equal = all([len(v)==n for v in input.values()])
Как только это произойдетГотово, приведенный ниже код просматривает каждое значение, подбирает значение i и сохраняет его в словарь, попробуйте его с 0:
{k:v[0] for k,v in input.items()}
Затем вам нужно добавить понимание списка
[ i for for i in range(len(list(input.values())[0])]
Выше вернется диапазон чисел.Но если вы скомбинируете их, он вернет словари с i в диапазоне длины первого значения.
list_dic = [{
k:v[i] for k,v in input.items() #This create the correct dictionnary with all the i-values in the input
} for i in range(len(list(input.values())[0])] # iterate through the length of the first list