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

Словарь Python и методы словаря

Словари-это неупорядоченные структуры данных, которые сопоставляют уникальные ключи со значениями. Словарь websters Dict использовал строки в качестве ключей в словаре, но ключи словаря могут быть любым неизменяемым типом данных (числа, строки, кортежи и т. Д.). Значения словаря могут быть практически любыми (int, списки, функции, строки и т. Д.).

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

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

Словарь Python и видео Манипуляции со словарем

Определение словаря

Словари пишутся в фигурных скобках {}.

Определите словарь. Клавиши выделены красным цветом. Значения выделены синим цветом.

# Define a dictionary 
webstersDict = {'person': 'a human being',
                'marathon': 'a running race that is about 26 miles',
                'resist': 'to remain strong against the force',
                'run': 'to move with haste; act quickly'}

Словари-это неупорядоченные структуры данных, которые сопоставляют уникальные ключи со значениями. Словарь websters Dict использовал строки в качестве ключей в словаре, но ключи словаря могут быть любым неизменяемым типом данных (числа, строки, кортежи и т. Д.). Значения словаря могут быть практически любыми (int, списки, функции, строки и т. Д.).

Например, в приведенном ниже словаре genderDict имеет int в качестве ключей и строки в качестве значений.

# Define a dictionary
genderDict = {0: 'male',
              1: 'female'}

Важно подчеркнуть, что если вы попытаетесь сделать ключ изменяемым типом данных (например, списком), вы получите ошибку.

# Failure to define a dictionary
webstersDict = {(1, 2.0): 'tuples can be keys',
                1: 'ints can be keys',
                'run': 'strings can be keys',
                ['sock', 1, 2.0]: 'lists can NOT be keys'}

Неспособность определить словарь со списком в качестве ключа. Списки НЕ являются неизменяемыми

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

Чтобы получить доступ к значению словаря, используйте квадратные скобки [].

Например, приведенный ниже код использует ключ “марафон” для доступа к значению “беговая гонка, которая составляет около 26 миль”.

# Get value of the 'marathon' key
webstersDict['marathon']

Доступ к ключу “марафон”

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

# Try to get value for key that does not exist
webstersDict['nonexistentKey']

Ошибка ключа приведет к тому, что вы попытаетесь найти несуществующий ключ.

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

Добавить или обновить ключ

Вы можете добавить новую пару ключ-значение.

# add one new key value pair to a dictionary
webstersDict['shoe'] = 'an external covering for the human foot'

Добавьте новый ключ “обувь” в словарь. Новый ключ “башмак” заключен в красный прямоугольник.

Вы также можете обновить пару ключ-значение.

Обновите ключ словаря “марафон”

Вы также можете добавлять или обновлять несколько пар значений ключей одновременно, используя метод dictionary update , как мы увидим позже .

Удалить ключ из словаря

Ключ и соответствующее ему значение можно удалить из словаря с помощью del .

# Remove the key 'resist' from the dictionary
del webstersDict['resist']

Удалите ключ “сопротивляться” из словаря webster’s Dict.

Методы словаря

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

метод обновления

Метод обновления очень полезен для одновременного обновления нескольких пар значений ключей. В качестве аргумента используется словарь.

# Using update method to add two key value pairs at once
webstersDict.update({'ran': 'past tense of run',
                     'shoes': 'plural of shoe'})

Добавил в словарь ключи ” бег ” и “обувь”.

Если вам интересно, почему ключи, добавленные в словарь, находятся не в том порядке, в котором они были добавлены, это потому, что словари неупорядочены.

метод получения

# Define a dictionary
storyCount = {'is': 100,
              'the': 90,
              'Michael': 12,
              'runs': 5}

Метод get возвращает значение для данного ключа. Если ключ не существует, словарь по умолчанию не вернет его.

# Since the key 'Michael' exists, it will return the value 12 storyCount.get('Michael')

Поскольку ключ “Майкл” существует, он возвращает значение 12. Если бы “Майкл” не существовал, он бы ничего не вернул.

Этот метод очень полезен для поиска ключей, о которых вы не знаете, в словаре, чтобы избежать ошибок ключей.

У них ключа “курица” не существует.

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

# Make default value for key that doesn't exist 0.
storyCount.get('chicken', 0)

Вы можете увидеть полезность этого метода, если попробуете Python Word Count .

метод pop

Метод pop удаляет ключ и возвращает значение.

storyCount.pop('the')

Словарь до и после удаления ключа “the” из словаря.

метод ключей

Метод keys возвращает ключи словаря в виде списка

storyCount.keys()

Возвращает ключи словаря в виде списка

метод значений

Метод values возвращает значения в словаре в виде списка

storyCount.values()

метод элементов

Метод items возвращает список кортежей, где каждый кортеж имеет форму (ключ, значение).

webstersDict.items()

Метод items возвращает список кортежей в виде (ключ, значение).

Итерация по словарю

Вы можете перебирать ключи словаря с помощью цикла for.

for key in storyCount: 
  print(key)

Выполните итерацию по ключам словаря.

Вы также выполняете итерацию по ключам словаря с помощью метода ключей.

for key in storyCount.keys(): 
  print(key)

Выполните итерацию по ключам словаря.

Цикл for ниже использует метод items для доступа к одной паре (ключ, значение) на каждой итерации цикла.

for key, value in webstersDict.items(): 
  print(key, value)

Выполните итерацию по парам ключей и значений словаря.

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

Заключительные замечания

Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы здесь или в разделе комментариев к видео youtube ! В следующем посте Python Word Count будут рассмотрены методы словаря, манипуляции со списком и манипуляции со строками .

Эта статья первоначально появилась в моем блоге medium