Я работал над проектом на Python для системы управления счетами в ресторане. Для этого я использовал словарь, где ключом было название продукта, а значением — его стоимость.
Мне нужно было собрать все значения из словаря в один список, чтобы можно было проводить с ними вычисления. Я искал способы, как это сделать, и нашёл несколько решений для получения значений словаря в виде списка в Python.
Позвольте мне пояснить на примере, как работают эти методы.
Вот данные в парах ключ-значение:
food_menu = { "Pizza": 50, "Chinese": 30, "Pasta": 45, "Burger": 64 }
Итак, данные хранятся таким образом, и мне нужно получить список всех значений словаря в Python, и результат будет выглядеть так:
[50, 30, 45, 64]
- С помощью метода dict.values()
- С помощью цикла for
- С использованием List Comprehension
- С помощью функции map()
С помощью метода dict.values()
Сначала мы применим метод dict.values(), который позволяет получить все значения из словаря в виде списка: [val1, val2, …]. Чтобы преобразовать этот список в обычный, мы воспользуемся конструктором списка.
Синтаксис:
list(dict_name.values())
- Values(): убедитесь, что вы используете этот метод только для словаря; в противном случае выдаст ошибку.
- Конструктор list(): он преобразует извлеченные значения словаря в список.
Вот пример, показывающий, как преобразовать dict_values в список в Python с помощью метода dict.values().
food_menu = { "Pizza": 50, "Chinese": 30, "Pasta": 45, "Burger": 64 } price_list = list(food_menu.values()) print(price_list)
Выше представлен код, который описывает словарь food_menu. В этом словаре ключи представляют собой продукты питания, а значения — их цены.
Нашей задачей было преобразовать все значения словаря в список на языке Python с помощью цикла for.
С помощью цикла for
В Python мы также можем использовать цикл for для преобразования значений словаря в список. Сначала мы получаем значения словаря с помощью метода values(). Затем мы перебираем каждое значение по очереди и добавляем его в список с помощью метода add().
dealerships = { "Atlanta Branch": 1200, "Houston Branch": 1100, "San Diego Branch": 900, "New York Branch": 1500 } cars_sold_list = [] for num in dealerships.values(): cars_sold_list.append(num) print(cars_sold_list)
В представленном коде у нас есть словарь «дилерские центры», где названия филиалов являются ключами, а количество проданных автомобилей — значениями. Мы создаём пустой список, например, cars_sold_list = [], чтобы сохранить все значения словаря в этом списке.
Затем мы используем цикл for для перебора всех значений словаря «дилерские центры»: «для числа в дилерских центрах.значения():». Мы добавляем каждое значение в список cars_sold_list с помощью метода append: cars_sold_list.append(num).
С использованием List Comprehension
Здесь мы применим понимание списка, которое использует ту же логику, что и в предыдущем примере. Разница в том, что вместо цикла for мы будем использовать однострочный цикл for. Понимание списка позволяет создать список без необходимости добавлять его вручную.
Давайте рассмотрим, как преобразовать значения словаря в список в Python с помощью понимания списка.
landmarks = { "Statue of Liberty": 4.5, "Grand Canyon": 6.0, "Mount Rushmore": 3.0, "Golden Gate Bridge": 10.0 } tourists_list = [num for num in landmarks.values()] print(tourists_list)
В этом примере мы используем однострочный цикл for в генераторе списков. Он будет перебирать каждое значение из словаря «ориентиры» с помощью конструкции «for num in ориентиры.values()». В результате будет создан список всех значений, которые будут выглядеть так: «tourists_list = [num for num in ориентиры.values()]».
С помощью функции map()
Мы также можем воспользоваться функцией map() в Python, которая позволяет перебирать каждый ключ словаря и использовать лямбда-функцию. Таким образом, мы можем собрать все значения из словаря, используя методы map() и lambda() в Python.
Вот пример того, как можно преобразовать dict_values в список с помощью функции map():
newspapers = { "The New York Times": "New York", "Los Angeles Times": "Los Angeles", "The Washington Post": "Washington, D.C.", "The Boston Globe": "Boston" } newspaper_cities = list(map(lambda x: newspapers[x], newspapers)) print(newspaper_cities)
В приведённом коде у нас есть словарь, где ключами являются названия газет, а значениями — города. Наша задача — извлечь все города из этого словаря и поместить их в список.
Для этого мы используем метод лямбда (lambda), чтобы определить значение ключа. Например, «лямбда x: газеты[x]». Затем мы применяем метод map() к каждому ключу словаря, используя лямбда-функцию, чтобы получить значения словаря.
Наконец, мы используем конструктор списка (list), чтобы преобразовать результат в список. Например, list(map(lambda x: газеты[x], газеты)).