Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Словарь Питона

Словарь Python

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

Видео:Словари Python для хранения пар ключ/значение

Словарь Python представляет собой неупорядоченный набор элементов. Каждый элемент словаря имеет key/value пара.

Словари оптимизированы для извлечения значений, когда известен ключ.

<час>

Создание словаря Python

Создать словарь так же просто, как поместить элементы в фигурные скобки {} через запятую.

Элемент имеет key и соответствующий value который выражается в виде пары (ключ:значение ).

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

# empty dictionary
my_dict = {}

# dictionary with integer keys
my_dict = {1: 'apple', 2: 'ball'}

# dictionary with mixed keys
my_dict = {'name': 'John', 1: [2, 4, 3]}

# using dict()
my_dict = dict({1:'apple', 2:'ball'})

# from sequence having each item as a pair
my_dict = dict([(1,'apple'), (2,'ball')])

Как вы можете видеть выше, мы также можем создать словарь, используя встроенный dict() функция.

<час>

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

В то время как индексация используется с другими типами данных для доступа к значениям, словарь использует keys . Ключи можно использовать либо внутри квадратных скобок [] или с помощью get() метод.

Если мы используем квадратные скобки [] , KeyError вызывается в случае, если ключ не найден в словаре. С другой стороны, get() метод возвращает None если ключ не найден.

# get vs [] for retrieving elements
my_dict = {'name': 'Jack', 'age': 26}

# Output: Jack
print(my_dict['name'])

# Output: 26
print(my_dict.get('age'))

# Trying to access keys which doesn't exist throws error
# Output None
print(my_dict.get('address'))

# KeyError
print(my_dict['address'])

Вывод

Jack
26
None
Traceback (most recent call last):
  File "<string>", line 15, in <module>
    print(my_dict['address'])
KeyError: 'address'
<час>

Изменение и добавление элементов словаря

Словари изменяемы. Мы можем добавить новые элементы или изменить значение существующих элементов с помощью оператора присваивания.

Если ключ уже присутствует, существующее значение обновляется. Если ключ отсутствует, новый (ключ:значение ) добавляется в словарь.

# Changing and adding Dictionary Elements
my_dict = {'name': 'Jack', 'age': 26}

# update value
my_dict['age'] = 27

#Output: {'age': 27, 'name': 'Jack'}
print(my_dict)

# add item
my_dict['address'] = 'Downtown'

# Output: {'address': 'Downtown', 'age': 27, 'name': 'Jack'}
print(my_dict)

Вывод

{'name': 'Jack', 'age': 27}
{'name': 'Jack', 'age': 27, 'address': 'Downtown'}
<час>

Удаление элементов из словаря

Мы можем удалить конкретный элемент в словаре с помощью pop() метод. Этот метод удаляет элемент с указанным key. и возвращает value .

popitem() можно использовать для удаления и возврата произвольного (key, value) пара элементов из словаря. Все элементы можно удалить сразу, используя clear() метод.

Мы также можем использовать del ключевое слово для удаления отдельных элементов или всего словаря.

# Removing elements from a dictionary

# create a dictionary
squares = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

# remove a particular item, returns its value
# Output: 16
print(squares.pop(4))

# Output: {1: 1, 2: 4, 3: 9, 5: 25}
print(squares)

# remove an arbitrary item, return (key,value)
# Output: (5, 25)
print(squares.popitem())

# Output: {1: 1, 2: 4, 3: 9}
print(squares)

# remove all items
squares.clear()

# Output: {}
print(squares)

# delete the dictionary itself
del squares

# Throws Error
print(squares)

Вывод

16
{1: 1, 2: 4, 3: 9, 5: 25}
(5, 25)
{1: 1, 2: 4, 3: 9}
{}
Traceback (most recent call last):
  File "<string>", line 30, in <module>
    print(squares)
NameError: name 'squares' is not defined
<час>

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

Методы, доступные со словарем, приведены в таблице ниже. Некоторые из них уже использовались в приведенных выше примерах.

Метод Описание
очистить() Удаляет все элементы из словаря.
копировать() Возвращает поверхностную копию словаря.
fromkeys(seq[, v]) Возвращает новый словарь с ключами из seq и значение равно v (по умолчанию None ).
получить(ключ[,d]) Возвращает значение key . Если ключ не существует, возвращает d (по умолчанию None ).
элементы() Возвращает новый объект элементов словаря в формате (ключ, значение).
ключи() Возвращает новый объект ключей словаря.
поп(ключ[,d]) Удаляет элемент с помощью ключа и возвращает его значение или d если ключ не найден. Если d не указан, а ключ не найден, возникает KeyError .
попитем() Удаляет и возвращает произвольный элемент (ключ, значение ). Поднимает KeyError если словарь пуст.
setdefault(key[,d]) Возвращает соответствующее значение, если key есть в словаре. Если нет, вставляет ключ со значением d и возвращает d (по умолчанию None ).
обновить([другое]) Обновляет словарь парами ключ/значение из other. , перезаписывая существующие ключи.
значения() Возвращает новый объект значений словаря

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

# Dictionary Methods
marks = {}.fromkeys(['Math', 'English', 'Science'], 0)

# Output: {'English': 0, 'Math': 0, 'Science': 0}
print(marks)

for item in marks.items():
    print(item)

# Output: ['English', 'Math', 'Science']
print(list(sorted(marks.keys())))

Вывод

{'Math': 0, 'English': 0, 'Science': 0}
('Math', 0)
('English', 0)
('Science', 0)
['English', 'Math', 'Science']
<час>

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

Понимание словаря — это элегантный и лаконичный способ создания нового словаря из итерируемого объекта в Python.

Понимание словаря состоит из пары выражений (ключ:значение ), за которым следует for оператор внутри фигурных скобок {} .

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

# Dictionary Comprehension
squares = {x: x*x for x in range(6)}

print(squares)

Вывод

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Этот код эквивалентен

squares = {}
for x in range(6):
    squares[x] = x*x
print(squares)

Вывод

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Понимание словаря может дополнительно содержать операторы for или if.

Необязательный if оператор может отфильтровать элементы для формирования нового словаря.

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

# Dictionary Comprehension with if conditional
odd_squares = {x: x*x for x in range(11) if x % 2 == 1}

print(odd_squares)

Вывод

{1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

Чтобы узнать больше о понимании словаря, посетите Python Dictionary Comprehension.

<час>

Другие операции со словарем

Тест на членство в словаре

Мы можем проверить, является ли key находится в словаре или не использует ключевое слово in . Обратите внимание, что тест на членство предназначен только для keys а не для values .

# Membership Test for Dictionary Keys
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

# Output: True
print(1 in squares)

# Output: True
print(2 not in squares)

# membership tests for key only not value
# Output: False
print(49 in squares)

Вывод

True
True
False

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

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

# Iterating through a Dictionary
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in squares:
    print(squares[i])

Вывод

1
9
25
49
81
<час>

Встроенные функции словаря

Встроенные функции, такие как all() , any() , len() , cmp() , sorted() и т. д. обычно используются со словарями для выполнения различных задач.

Функция Описание
все() Вернуть True если все ключи словаря истинны (или если словарь пуст).
любой() Вернуть True если какой-либо ключ словаря верен. Если словарь пуст, вернуть False .
len() Возвращает длину (количество элементов) в словаре.
cmp() Сравнивает элементы двух словарей. (Недоступно в Python 3)
отсортировано() Возвращает новый отсортированный список ключей в словаре.

Вот несколько примеров использования встроенных функций для работы со словарем.

# Dictionary Built-in Functions
squares = {0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

# Output: False
print(all(squares))

# Output: True
print(any(squares))

# Output: 6
print(len(squares))

# Output: [0, 1, 3, 5, 7, 9]
print(sorted(squares))

Вывод

False
True
6
[0, 1, 3, 5, 7, 9]

Python

  1. Типы данных Python
  2. Операторы Python
  3. Оператор передачи Python
  4. Аргументы функции Python
  5. Итераторы Python
  6. Замыкания Python
  7. Дата и время Python
  8. Python — Обзор
  9. Питон — Числа
  10. Python — строки