Python map dict values

Mapping списков, словарей и кортежей в Python

Mapping в Python означает применение операции для каждого элемента итерируемого объекта, например, списка. В русских текстах помимо mapping может встречаться “маппинг”, “сопоставление” и “отображение”.

Mapping в Python

Mapping означает преобразование группы значений в другую группу значений.

В Python для отображения можно использовать встроенную функцию map() , которая возвращает объект map . Этот объект является результатом применения какой-либо операции к элементам итерируемого объекта.

Объект map можно легко преобразовать обратно в список, например, вызвав для него функцию list() .

Синтаксис использования функции map() :

Здесь operation – это функция или лямбда-функция (в зависимости от того, что вам больше нравится). iterable – это итерируемый объект, к элементам которого применяется operation .

Mapping списков

В Python отобразить можно любой итерируемый объект, а значит, и список тоже.

Например, давайте возведем в квадрат список чисел. Этот подход в качестве функции отображения использует лямбда-функцию. Если вы не знакомы с лямбдами, рекомендуем статью “Лямбда-функции в Python – объяснение с примерами”.

numbers = [1, 2, 3, 4, 5] squared_nums = map(lambda x: x ** 2, numbers) print(list(squared_nums)) # Вывод: # [1, 4, 9, 16, 25]

Вот тот же пример с обычной функцией:

numbers = [1, 2, 3, 4, 5] def square(number): return number ** 2 squared_nums = map(square, numbers) print(list(squared_nums)) # Вывод: # [1, 4, 9, 16, 25]

Здесь функция square() применяется для каждого элемента списка чисел. Обратите внимание, что в функция map() автоматически передает в функцию square все элементы списка по очереди.

Mapping словарей

При помощи функции map() можно отображать и словари.

Например, давайте отобразим data так, чтобы первые буквы строковых значений в парах ключ-значение стали заглавными:

data = < "name": "jack", "address": "imaginary street", "education": "mathematican" >def capitalize(word): return word.capitalize() data_map = map(lambda pair: (pair[0], capitalize(pair[1])), data.iteritems()) data = dict(data_map) print(dict(data)) # Вывод: #

Здесь довольно много строк кода, поэтому давайте разберем подробнее:

  • У нас есть data – словарь, содержащий пары ключ-значение. Значения сохранены в нижнем регистре, а мы хотим сделать первые буквы заглавными.
  • Функция capitalize() принимает строку и возвращает ее копию, в которой первый символ переведен в верхний регистр.
  • data_map – это объект map. Он создается путем применения функции capitalize() для каждого значения каждой пары ключ-значение в data.
  • Чтобы преобразовать data_map обратно в словарь, мы используем встроенную функцию dict() .

Mapping кортежей

В Python можно также отображать кортежи. Тут все аналогично отображению списка.

Например, давайте создадим кортеж, содержащий имена из другого кортежа, с переводом первых букв имен в верхний регистр:

names = ("jamie", "jane", "jack") def capitalize(word): return word.capitalize() capitalized_names = map(capitalize, names) print(tuple(capitalized_names)) # Вывод: # ('Jamie', 'Jane', 'Jack')

Заключение

В Python для преобразования одной группы значений в другую можно использовать mapping (отображение). Для этого применяется встроенная функция map() . Эта функция применяет переданную ей в качестве аргумента функцию к каждому элементу группы значений.

Спасибо за внимание и успешного кодинга!

Источник

Mapping Over Dictionary Values In Python

Mapping over dictionary values in Python

This article will give you with several methods of mapping over dictionary values in Python. Let’s read it now to get more knowledge.

Mapping over dictionary values in Python

Mapping over dictionary values in Python means iterating over the elements in the dictionary and mapping a function over all values in a dictionary, replacing each value with the result of applying the function to the value.

Using For Loop

for value in sequence:
#loop body

  • value: represents the element of the sequence on each iteration.
  • sequence: an iterable datatype such as a list, a tuple, a set, or a string.

First, we define a function to take values from the elements of the dictionary. Next, we use a For Loop to iterate over the elements of the dictionary and put it to the function we defined earlier. To do that, use the items() function to convert the dictionary into a view object.

temperatures = def c_to_f(cTemp): fTemp = (cTemp * 1.8) + 32 # 1f = 1c * 1.8 + 32 return fTemp fTemperatures = <> # temperatures.items() = ([('US', 15), ('UK', 14), ('JP', 28)]) for country, temp in temperatures.items(): fTemperatures[country] = c_to_f(temp) print(fTemperatures)

Using dictionary comprehension

  • key: a key will be the key to the dictionary
  • value: a value will be the value of the dictionary
  • element: represent the element in each loop
  • iterable: Any Python object that permits it to be iterated, such as strings, lists, tuples, etc.

We can also use dictionary comprehension to shorten the code, like the example below:

temperatures = def c_to_f(cTemp): fTemp = (cTemp * 1.8) + 32 # 1f = 1c * 1.8 + 32 return fTemp # temperatures.items() = ([('US', 15), ('UK', 14), ('JP', 28)]) # is pushed into the dict at each loop fTemperatures = < country: c_to_f(temp) for country, temp in temperatures.items() >print(fTemperatures)

Using valmap() function in Toolz package

Description:

Similar to map() , valmap() executes a function for each element in a dictionary.

The Toolz package provides utility functions for iterators and dictionaries. It can help us to use valmap() in the dictionary. So we can easily map over dictionary values in Python. To use valmap() , you must import Toolz into your application using this line of code:

Consider the example below to better understand how to use the valmap() function.

import toolz temperatures = def c_to_f(cTemp): fTemp = (cTemp * 1.8) + 32 # 1f = 1c * 1.8 + 32 return fTemp # temperatures_value -> c_to_f(temperatures_value) print(toolz.valmap(c_to_f, temperatures))

Summary

Through what you have read in this article, we hope you know mapping over dictionary values in Python. Please leave a comment if there’s anything you don’t understand in the article. We will respond as possible. Thank you for reading!

Maybe you are interested:

Hi, I’m Cora Lopez. I have a passion for teaching programming languages such as Python, Java, Php, Javascript … I’m creating the free python course online. I hope this helps you in your learning journey.

Name of the university: HCMUE
Major: IT
Programming Languages: HTML/CSS/Javascript, PHP/sql/laravel, Python, Java

Источник

Mapping Python Lists, Dicts, and Tuples

Mapping in Python means applying an operation for each element of an iterable, such as a list.

For example, let’s square a list of numbers using the map() function:

numbers = [1, 2, 3, 4, 5] squared_nums = map(lambda x: x ** 2, numbers) print(list(squared_nums))

Mapping in Python

Mapping means transforming a group of values into another group of values.

In Python, you can use the built-in map() function for mapping. The map() function returns a map object. This map object is the result of applying an operation on an iterable, such as a list. You can easily convert this map object back to a list for example by calling the list() function on it.

The syntax of using the map() function:

Where the operation is a function, or a lambda function, whichever you prefer. The iterable is the group of items for which you apply the operation .

Mapping Python Lists

The mapping works for any iterable in Python. In other words, you can use it on a list.

For example, let’s square a list of numbers. This approach uses a lambda function as the mapping function. If you are unfamiliar with lambdas, feel free to check this guide, or see the next example without lambdas.

numbers = [1, 2, 3, 4, 5] squared_nums = map(lambda x: x ** 2, numbers) print(list(squared_nums))

Here is the same example. This time we are not using a lambda function, but a regular function instead:

numbers = [1, 2, 3, 4, 5] def square(number): return number ** 2 squared_nums = map(square, numbers) print(list(squared_nums))

This is a result of applying the function square() for each element of the list of numbers. Notice how you don’t need to give the square a parameter in the map function. This is possible because the map function knows what you’re trying to do. It automatically passes each element as an argument to the function one by one.

Mapping Python Dictionaries

You can also map dictionaries in Python using the built-in map() function.

For example, let’s map data such that the values of the key-value pairs become capitalized strings:

data = < "name": "jack", "address": "imaginary street", "education": "mathematican" >def capitalize(word): return word.capitalize() data_map = map(lambda pair: (pair[0], capitalize(pair[1])), data.iteritems()) data = dict(data_map) print(dict(data))

There are quite a few lines of code, so let’s clarify how it works:

  • There is data , which is a dictionary of key-value pairs. The values are not capitalized and we want to change that.
  • The capitalize() function takes a string and returns a capitalized version of it.
  • The data_map is a map object. It’s created by applying the capitalize() function for each value of each key-value pair in the data .
  • To convert the data_map back to a dictionary, we use the built-in dict() function.

Mapping Python Tuples

You can also map tuples in Python. This works very similarly to mapping a list.

For example, let’s create a tuple by capitalizing the names of another tuple:

names = ("jamie", "jane", "jack") def capitalize(word): return word.capitalize() capitalized_names = map(capitalize, names) print(tuple(capitalized_names))

Conclusion

In Python, you can use mapping to transform a group of values into another. To do this use the built-in map() function. This function works by applying a function for each element of the group of values.

For example, you can create a list of squared numbers from a list of numbers using map() :

numbers = [1, 2, 3, 4, 5] squared_nums = map(lambda x: x ** 2, numbers) print(list(squared_nums))

Thanks for reading. I hope you enjoy it.

Источник

Читайте также:  Hello World
Оцените статью