#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)