Рубрики
Без рубрики

Понимание понимания словаря Python

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

Автор оригинала: Pankaj Kumar.

Понимание понимания словаря Python

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

Подобно пониманию списка, понимание словаря Python создает словарь с нашими спецификациями в одной строке. Это позволяет избежать хлопот создания экземпляра словаря, а затем заполнение его, используя несколько операторов.

Давайте посмотрим на некоторые из способов, используя, что мы можем легко создавать словари, используя иллюстративные примеры!

Общий понимание словаря Python

Например, давайте предположим, что мы хотим построить словарь {ключ: значение} Пары, которые отображают английский алфавитные символы к их значению ASCII.

Итак, когда мы называем my_dict ['a'] Он должен выводить соответствующее значение ASCII ( 97 ). Давайте сделаем это для букв A-Z Отказ

Для людей, незнакомцев с кодом Python, нормальный подход будет создать словарь, прежде чем заполнять его, как это.

# Create the dictionary
my_dict = {}

# Now populate it
for i in range(97, 97 + 26):
    # Map character to ascii value
    my_dict[chr(i)] = i

# Print the populated dictionary
print(my_dict)

Выход

{'a': 97, 'b': 98, 'c': 99, 'd': 100, 'e': 101, 'f': 102, 'g': 103, 'h': 104, 'i': 105, 'j': 106, 'k': 107, 'l': 108, 'm': 109, 'n': 110, 'o': 111, 'p': 112, 'q': 113, 'r': 114, 's': 115, 't': 116, 'u': 117, 'v': 118, 'w': 119, 'x': 120, 'y': 121, 'z': 122}

Хотя приведенный выше код работает, мы можем сделать этот более «Pythonic», вызывая функцию понимания словаря Python и сделать это только в одной строке кода!

Для понимания словаря синтаксис аналогичен этому:

my_diict = {key: func(key) for key in something}

Или даже это

my_dict = {func(val): val for val in something}

Здесь что-то Может быть итератен, который производит ключ или валь Отказ Функция Func Затем отображает ключ к значению или наоборот. Вы можете немедленно сопоставить ключ к значению в одной одной строке, а также создавая словарь!

В нашем случае валь Переменная Я , пока func (val) Функция Chr (I) Отказ

Так что теперь наш пример может быть уменьшен до упрощенного, но все еще читаемый код!

my_dict = {chr(i): i for i in range(97, 97 + 26)}
print(my_dict)

Выход

{'a': 97, 'b': 98, 'c': 99, 'd': 100, 'e': 101, 'f': 102, 'g': 103, 'h': 104, 'i': 105, 'j': 106, 'k': 107, 'l': 108, 'm': 109, 'n': 110, 'o': 111, 'p': 112, 'q': 113, 'r': 114, 's': 115, 't': 116, 'u': 117, 'v': 118, 'w': 119, 'x': 120, 'y': 121, 'z': 122}

Это дает тот же выход, что и раньше! Удивительно, не так ли?

Хотя вышеприведенный пример выглядит достаточно иллюстративным, чтобы найти силу понимания словаря, мы можем сделать больше?

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

Использование условных условий в словаре понимание

Мы можем использовать условные заявления, такие как Если и еще делать понимание словаря.

Давайте возьмем первый случай, где мы только хотим использовать Если условие.

Синтаксис для понимания словаря будет что-то вроде этого:

my_dict = {key: value for key in iterable if condition}

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

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

my_list = [0, 1, 2, 3, 4, 5, 6]

my_dict = {i: i*i for i in my_list if i % 2 == 0}

print(my_dict)

Выход

{0: 0, 2: 4, 4: 16, 6: 36}

Действительно, у нас есть только номера в нашем словаре, как ключи!

Давайте теперь сделаем понимание словаря, используя еще Состояние тоже!

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

my_dict = {key: (value1 if condition1(value) is True else value2) for key, value in something}

Давайте рассмотрим создание словаря с использованием существующего словаря. Новый словарь будет иметь значение 0, если это нечетное число. В противном случае он просто будет иметь старое значение, из нашего предыдущего словаря.

old_dict = {'a': 97, 'b': 98, 'c': 99, 'd': 100}

new_dict = {k: (val if val % 2 == 0 else 0) for k, val in old_dict.items()}

print(new_dict)

Выход

{'a': 0, 'b': 98, 'c': 0, 'd': 100}

Заключение

В этой статье мы узнали о том, как мы могли бы сделать поведение словаря Python, используя некоторые иллюстративные примеры.

использованная литература

  • Статья Аскеппина на словаре Python