Всем привет! У меня есть задача в python преобразовать словарь в список словарей.
Подскажите, как это можно сделать более эффективно? Может есть какие-то удобные
лайфхаки или функции для этого? Заранее спасибо!
Всем привет! У меня есть задача в python преобразовать словарь в список словарей.
Подскажите, как это можно сделать более эффективно? Может есть какие-то удобные
лайфхаки или функции для этого? Заранее спасибо!
Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat
А ТАКЖЕ: Канал о Python, статьи и книги ==>> @pythoneer_ru
Привет! Самый простой способ преобразовать словарь в список словарей - это использовать
list comprehension. Вот простой пример:
Получается список словарей, где каждый элемент исходного словаря представлен как отдельный словарь.Программный код:original_dict = {'a': 1, 'b': 2, 'c': 3}
list_of_dicts = [{'key': k, 'value': v} for k, v in original_dict.items()]
print(list_of_dicts)
Годнота! Не знал об этом методе. Надо будет опробовать.Сообщение от Богдан
Ещё можно использовать функцию map() для этого:
В принципе, результат будет таким же, но выглядит немного по-другому.Программный код:original_dict = {'a': 1, 'b': 2, 'c': 3}
list_of_dicts = list(map(lambda item: {'key': item[0], 'value': item[1]}, original_dict.items()))
print(list_of_dicts)
О, map() - это уже что-то новое для меня! Кажется проще, чем list comprehension.Сообщение от ElenaSun
Думаю, ещё можно попробовать Pandas для работы со словарями, особенно если у тебя сложные данные.
Пример:
Pandas удобен для таких задач, да и вообще гибкий инструмент.Программный код:import pandas as pd
original_dict = {'a': 1, 'b': 2, 'c': 3}
df = pd.DataFrame(list(original_dict.items()), columns=['key', 'value'])
list_of_dicts = df.to_dict('records')
print(list_of_dicts)
О, Pandas супер тема, но для простых задач он может быть оверкилл.Сообщение от Монах
Если нужно просто и быстро, можно сделать так:
Но тут без всяких заморочек, классика.Программный код:original_dict = {'a': 1, 'b': 2, 'c': 3}
list_of_dicts = [{'key': k, 'value': v} for k, v in original_dict.items()]
print(list_of_dicts)
Просто и со вкусом! Минимализм - наше всё.Сообщение от Aslan