Как перевести словарь в список python
Перейти к содержимому

Как перевести словарь в список python

  • автор:

Как преобразовать список в словари?

drygdryg

Тут не поощряется публикация заданий без попытки самостоятельного решения.
В ответе тоже не буду давать вам готового решения, поскольку это «медвежья услуга».

Могу дать подсказку как решать вашу задачу.
Во-первых, следует отметить, что во втором, заблокированном вашем вопросе, формат входных данных отличается от озвученного здесь. Нужно тщательнее и аккуратнее приводить примеры.
Любую относительно сложную задачу нужно разбивать на блее простые подзадачи и решать их отдельно и изолированнно.

В данном случае входной список вам следует сначала разделить на набор отдельных списков, где в каждом первым элементом будет ваш идентификатор, а дальше список ключей и значений. Это можно оформить отдельной функцией. В том, втором вопросе было видно, что разделить входную последовательность можно, например, по значению ‘ID’. В примерах, приведённых здесь, нет такихэлементов, поэтому тут придётся ориентироваться на тип или четность.
Когда у вас будет последовательность списков, первый элемент — ключ всего списка, легко отделить слайсом, а весь хвост можно легко превратить в пары ключ-значение вот таким вот способом:

In [1]: lst=[1,2,3,4,5,6] In [2]: dict(zip(itr:=iter(lst), itr)) Out[2]:

Ну а если вы не сообразите, как увязать воедино все приведенные мной тут примеры, то вам еще рано решать такие задачи, нужно сделать пару шагов назад и осваивать базовые основы языка.

Преобразовать словарь словарей в словарь со списками на python

У меня есть словарь со словарями, который показывает наличие фруктов определенного цвета:

dict1 = < 'Apple': , 'Melon': , 'Orange': , 'Banana': > 

его нужно преобразовать в словарь со списками такого формата:

list1 =

То есть ключи словаря — фрукты, а значение ключей — списки с наличием видов этого фрукта.

Отслеживать

3,713 6 6 золотых знаков 13 13 серебряных знаков 32 32 бронзовых знака

задан 29 авг 2023 в 10:47

93 6 6 бронзовых знаков

5 ответов 5

Сортировка: Сброс на вариант по умолчанию

dict1 = < 'Apple': , 'Melon': , 'Orange': , 'Banana': > list1 = < k: [n for n, f in d.items() if f] or ['NO_FRUITS'] for k, d in dict1.items() >print(list1) 

P.S. Зачем [‘NO_FRUITS’] ? Пустой список не будет удобнее?

Отслеживать

ответ дан 29 авг 2023 в 11:38

Stanislav Volodarskiy Stanislav Volodarskiy

34k 3 3 золотых знака 20 20 серебряных знаков 56 56 бронзовых знаков

Решил вашу проблему самым примитивным способом. Комментарии указал

from pprint import pprint dict1 = < 'Apple': , 'Melon': , 'Orange': , 'Banana': > list1 = dict() # Проходимся циклом по ключам словаря dict1 for fruit in dict1: # Создаем пустой список в новом словаре, чтобы добавлять туда фрукты в наличии list1[fruit] = [] # Проходимся циклом по всем видам фруктов for kind in dict1[fruit]: # Если продукт в наличии, добавляем в список по ключу искомого словаря if dict1[fruit][kind]: list1[fruit].append(kind) # Если после всех опреаций список остается пустым, отмечаем это добавлением строки "NO_FRUITS" if not list1[fruit]: list1[fruit].append("NO_FRUITS") pprint(list1) 

Преобразование значений словаря в список в Python

Чтобы преобразовать значения словаря в список, вы можете использовать метод dict.values(), который возвращает объект dict_values. Этот объект можно повторять, и если вы передадите его конструктору list(), он вернет объект списка со значениями словаря в качестве элементов.

Простой фрагмент кода для преобразования значений словаря в список:

valuesList = list(myDict.values())

Пример 1: с помощью dict.values()

В следующей программе у нас есть словарь, инициализированный тремя парами ключ:значение. Мы будем использовать метод dict.values() для получения объекта dict_values. Мы передаем метод в качестве аргумента конструктору list(), который возвращает список значений.

myDict = valuesList = list(myDict.values()) print(valuesList)
['apple', 'banana', 'cherry']

Пример 2: с использованием понимания списка

Мы также можем использовать понимание списка, чтобы получить значения словаря как элемента списка.

myDict = valuesList = [myDict[key] for key in myDict] print(valuesList)
['apple', 'banana', 'cherry']

Пример 3: с помощью цикла For Loop

Если вас не устраивает понимание списка, используйте For Loop. Когда вы перебираете словарь, вы получаете следующий ключ на каждой итерации. Вы можете использовать этот ключ для получения значения. Определите пустой список valuesList для хранения значений и добавления значения пары key:value во время каждой итерации в цикле for.

myDict = valuesList = [] for key in myDict: valuesList.append(myDict[key]) print(valuesList)
['apple', 'banana', 'cherry']

В этом руководстве мы узнали, как получить значения словаря в виде списка.

Преобразовать словарь в список

Напишите функцию, которая преобразовывает dict в список списков. Возвращаем пустой список, если словарь пустой.

Примеры:

to_list(< "a": 1, "b": 2 >) ➞ [["a", 1], ["b", 2]] to_list(< "shrimp": 15, "tots": 12 >) ➞ [["shrimp", 15], ["tots", 12]] to_list(<>) ➞ []

Посмотреть решение

def to_list(d): return sorted(list(i) for i in d.items())
def to_list(dct): list = [] for key,value in dct.items(): list.append([key,value]) list.sort() return list

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *