значения не отображаются при использовании второго для цикла — Python

#python #arrays #json #for-loop #nested-loops

Вопрос:

Я пытался выполнить случайный выбор в данных, но застрял при использовании for-loop для размещения всех данных в массив.

Данные

 data = [  {"Animal1": "Dog", "Animal2": "Cat", "Animal3": "Snake"},  {"Animal1": "Mouse", "Animal2": "Ant", "Animal3": "Chicken"},  {"Animal1": "Fish", "Animal2": "Elephant", "Animal3": "Fox"},  {"Animal1": "rabbit", "Animal2": "sheep", "Animal3": "wolf"} ]  

Мой код:

 new_data = []  for rows in data:  for row in rows:  new_data.append(row)  print(new_data)  

Выход

 ['Animal1', 'Animal2', 'Animal3', 'Animal1', 'Animal2', 'Animal3', 'Animal1', 'Animal2', 'Animal3', 'Animal1', 'Animal2', 'Animal3']  

Ожидаемый результат

 {  "Animal1": "Dog", "Animal2": "Cat", "Animal3": "Snake",  "Animal1": "Mouse", "Animal2": "Ant", "Animal3": "Chicken",  "Animal1": "Fish", "Animal2": "Elephant", "Animal3": "Fox",  "Animal1": "rabbit", "Animal2": "sheep", "Animal3": "wolf" }  

Комментарии:

1. Ваш ожидаемый результат неверен Python

2. Я только что отредактировал ожидаемый результат.

3. Ваш ожидаемый результат невозможен, потому что a dict не может иметь несколько экземпляров одного и того же ключа (например "Animal1" , используется четыре раза).

Ответ №1:

Я думаю, вы ищете что-то вроде:

 from collections import defaultdict  results = defaultdict(list)  for rows in data:  for key, value in rows.items():  results[key].append(value)