Вызов значений из словаря python: методы .get() и .setdefault() вместо квадратных скобок

Метод pop()

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

Синтаксис:

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

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

Сначала используем в качестве ключа , а дополнительное значение указывать не будем.

# Определяем словарь
dictvar = { 'Name': 'Sakib Al Hasan', 'Profession': 'Cricketer','Phone':'01866564234', 'Salary':300000 } 
# Выводим содержимое словаря
print("\nThe content of the dictionary:\n",dictvar)
# Читаем и удаляем значение по ключу, если ключ существует
print("\nThe phone no is:", dictvar.pop('Phone'))
# Выводим содержимое словаря после применения метода pop
print("\nThe content of the dictionary after pop:\n",dictvar)

Результат:

Ключ в словаре есть. Поэтому при использовании метода возвращается его значение, после чего этот элемент удаляется из словаря.

А теперь давайте применим метод с тем же первым аргументом (), но к нему добавим и второй, необязательный аргумент.

# Читаем значение ключа, которого нет в словаре
print("\nThe phone no is:", dictvar.pop('Phone','01766345234'))

Результат:

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

Конструктор dict() и ** kwargs

Это сокращенный метод конструктора dict(), который использует оператор kwargs(**) для сопоставления одного словаря с другим с помощью метода dict().

Синтаксис:

 
D3 = dict(dict1, **dict) 

Рассмотрим программу для объединения двух словарей с помощью конструктора dict() и оператора ** kwargs в Python.

Kwarg.py

 
dict1 = {            
    'Student' : 'Butler', 
    'Course' : 'Computer Science', 
    'Address' : 'Los Angeles' 
} 
 
# Second dictionary is: 
dict2 = { 
    'Teacher' : 'Rosy', 
    'Subject' : 'Computer Science' 
} 
 
 
# Use dict() constructor 
d3 = dict(dict1, **dict2) 
 
print("Merge two dictionaries", d3) # Merge two dictionaries 

Выход:

Merge two dictionaries {'Student': 'Butler', 'Course': 'Computer Science', 'Address': 'Los Angeles', 'Teacher': 'Rosy', 'Subject': 'Computer Science'} 

1.5. Обращение к значениям методом get().

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

>>> car_1 = {‘brand’: ‘bmw’, ‘type’: ‘седан’, ‘mileage’: 58135}
>>> color = car_1.get(‘color’, ‘Такого ключа не существует’)
>>> print(color)Такого ключа не существует

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

2.1. Перебор пар «ключ-значение» методом items().

Для перебора словаря можно воспользоваться циклом for за которым следует вызов метода items(), возвращающий список пар «ключ-значение». Такой вид перебора хорошо работает для словарей, хранящих один вид информации с разными ключами. В примере ниже создадим словарь связывающий месяц с количеством дней в нем. Воспользуемся f-строками и создадим условия if-else для удобного чтения окончания. 

>>> year = {‘январь’: 31, ‘февраль’: 28, ‘март’: 31, ‘апрель’: 30}
>>> for month, days in year.items():
…     if days % 2 == 0:
…             print(«{month} {days} дней.»)
…     else:
…             print(«{month} {days} день.»)
…январь 31 день.
февраль 28 дней.
март 31 день.
апрель 30 дней.

В начале в цикле for Python перебирает все пары «ключ-значение» в словаре. В процессе перебора ключ сохраняется в переменной month, а значение в переменной days. Затем создается условие, если количество дней четное, то выводится команда print с названием месяца и количества дней с окончанием «дней». Если количество не чётное, то пишется «день». 

Использование итерации

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

Код показан ниже:

a = 

b = []

for i in a:
    # Add to the new list
    # only if not present
    if i not in b:
        b.append(i)

print(b)

Выход

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

a = 
b = []

print(b)

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

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

Метод copy()

используется для создания копии словаря. Это полезно, когда нам нужно сохранить исходную копию словаря перед изменением.

Синтаксис:

Этот метод не принимает никаких аргументов.

Рассмотрим пример. В следующем скрипте копируется в . Обе переменные используют разную память. Таким образом, если вы измените какое-либо значение одного словаря, это не повлияет на другую копию словаря. Изменим одно из значений и выведем оба словаря.

dict1 = {'01117856': 2.97, '01113456': 3.69, '01118734': 3.89}
dict2 = dict1.copy()
dict2 = 3.99
print("The content of the original dictionary:\n", dict1)
print("The content of the copied dictionary:\n", dict2)

Запустим наш код. Можно заметить, что изменения в не вызывают никаких изменений в .

Python dict pop

Метод pop() словаря работает аналогично . Данный метод удаляет, и затем возвращает значение элемента имеющего заданный ключ.

Синтаксис метода pop()

Параметры метода pop()

Метод словаря pop() принимает два параметра:

  • key — ключ, который необходимо найти для удаления
  • default — значение которое надо вернуть, если искомый ключ не найден в словаре

Возвращаемое значение метода pop()

Метод словаря pop() возвращает следующие параметры:

  • Если key найден, возвращается значение удаленного элемента
  • Если key не найден, возвращается значение указанное по умолчанию, обычно None
  • Если key не найден, и при этом не указан аргумент по умолчанию, появится исключительная ошибка KeyError.

Пример 2. Выбор несуществующего элемента

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

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

Для создания словаря заключите в фигурные скобки {} список пар «ключ-значение», разделенных запятыми, в форме ключ: значение. Значением может быть число, список, строка и даже другой словарь. В примере ниже хранится информация об одном автомобиле. 

>>> car_1 = {‘brand’: ‘bmw’, ‘type’: ‘седан’, ‘mileage’: 58135}
>>> print(car_1){‘brand’: ‘bmw’, ‘type’: ‘седан’, ‘mileage’: 58135}

В данном примере ключом является ‘марка’, а значение ‘bmw’. Затем через запятую идет следующая пара ключ-значение и так далее. Если вы укажете ключ, то Python вернет значение, связанное с этим ключом. Ключ от значения всегда отделяется двоеточием. 

Dict fromkeys

Метод fromkeys() — предназначен для генерации нового словаря. Новый словарь генерируется из заданной последовательности элементов, и значениями предоставленными пользователем.

Синтаксис метода fromkeys():

Метод fromkeys() принимает два параметра:

  • sequence — последовательность элементов, которые будут представлять собой ключи для словаря
  • value — необязательное значение, которое устанавливается для каждого элемента словаря

Итак метод fromkeys() возвращает новый сгенерированный словарь, где ключами являются заранее заданные последовательности элементов.

Если данному методу передается аргумент value, то каждому элементу присваивается так и значение указанное в параметре value.

Python dict setdefault

Метод setdefault() — возвращает значение ключа в том случае, если искомый ключ находится в словаре. Если нет искомого ключа, он вставляет пару ключ/значение в словарь.

Синтаксис метода setdefault()

Параметры метода setdefault()

Метод словаря setdefault() принимает два значения:

  • Key — ключ для поиска в словаре
  • default_value — необязательный параметр, если нет искомого ключа, ключ с указанным значением будет вставлен в словарь. Если значение пустое, передается значение None

Возвращаемые значения метода setdefault()

  • Значение параметра key, если он присутствует в словаре
  • None — если искомый ключ отсутствует в словаре, и не указано значение по умолчанию
  • default_value — если искомый ключ не найден, и указано значение по умолчанию

Найдите ключ с минимальным значением в словаре – альтернативные методы

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

В оформлении Ответ в Stackoverflow , пользователь по сравнению с девятью (!) различными способами найти ключ с минимальным значением в словаре. Они здесь:

income = {'Anne' : 11111,
          'Bert' : 2222,
          'Cara' : 9999999}

# Convert to lists and use .index(max())
def f1(): 
    v=list(income.values())
    k=list(income.keys())
    return k

# Dictionary comprehension to swap keys and values
def f2():
   d3={v:k for k,v in income.items()}
   return d3

# Use filter() and a lambda function
def f3():
   return list(filter(lambda t: t==min(income.values()), income.items()))   

# Same as f3() but more explicit
def f4():
   m=min(income.values())
   return list(filter(lambda t: t==m, income.items())) 
      
# List comprehension
def f5():
   return   
 
# same as f5 but remove the max from the comprehension
def f6():
   m=min(income.values())
   return    
    
# Method used in this article
def f7():
   return min(income,key=income.get)    

# Similar to f1() but shortened to 2 lines
def f8():
    v=list(income.values())
    return list(income.keys()) 
  
# Similar to f7() but use a lambda function
def f9():
    return min(income, key=lambda k: income)    

print(f1())
print(f2())
print(f3())
print(f4())
print(f5())
print(f6())
print(f7())
print(f8())
print(f9())
# Bert (all outputs)

В оформлении ориентир Выполненные в большом словаре пользователя Stackoverflow, F1 () оказался самым быстрым.

Таким образом, второй лучший способ получить ключ с минимальным значением из словаря:

income = {'Anne' : 11111,
          'Bert' : 2222,
          'Cara' : 9999999}

v=list(income.values())
k=list(income.keys())
print(k)
# Bert

Найти ключ с максимальным значением в списке словарей

Допустим, у нас есть 3 словаря, содержащие информацию о доходах. Мы хотим найти ключ с максимальным значением из всех 3 словарей.

income1 = {'Anne': 1111,
           'Bert': 2222,
           'Cara': 3333}

income2 = {'Dani': 4444,
           'Ella': 5555,
           'Fred': 6666}

income3 = {'Greg': 7777,
           'Hope': 8888,
           'Igor': 999999999999}

list_of_dicts = 

Мы видим, что «Игорь» имеет самый высокий доход, поэтому мы ожидаем, что его возвращено.

Есть несколько способов сделать это. Самое простое состоит в том, чтобы поставить все пары клавишных пар в один словарь с использованием контура для цикла. Затем мы называем max () как обычно.

# Initialise empty dict
>>> big_dict = {}

# Use for loop and .update() method to add the key-value pairs
>>> for dic in list_of_dicts:
        big_dict.update(dic)

# Check the result is as expected
>>> big_dict
{'Anne': 1111,
'Bert': 2222,
'Cara': 3333,
'Dani': 4444,
'Ella': 5555,
'Fred': 6666,
'Greg': 7777,
'Hope': 8888,
'Igor': 999999999999}

# Call max() and specify key argument
>>> max(big_dict, key=big_dict.get)
'Igor' 

Техника 2: Клавиши Python () Метод

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

Синтаксис:

dict.keys()

Клавиши () Метод занимает Нет аргументов и возвращает Объект, который представляет список всех клавиш присутствует в конкретном входном словаре.

Итак, чтобы проверить, присутствует ли определенный ключ в Dict, мы используем Наряду с методом Keys () для сравнения Search_Key со списком клавиш, возвращаемых из метода клавиш (). Если ключ присутствует, он будет следовать за оператором в порции IF, в противном случае он будет прыгать в оператор в часть.

Пример:

inp_dict = {'Python': "A", 'Java':"B", 'Ruby':"C", 'Kotlin':"D"} 

search_key = 'Ruby'

if search_key in inp_dict.keys(): 
		print("The key is present.\n") 
		 
else: 
		print("The key does not exist in the dictionary.") 



Выход:

The key is present.

Пример 2:

inp_dict = {'Python': "A", 'Java':"B", 'Ruby':"C", 'Kotlin':"D"} 

search_key = 'Cpp'

if search_key in inp_dict.keys(): 
		print("The key is present.\n") 
		 
else: 
		print("The key does not exist in the dictionary.") 



Выход:

The key does not exist in the dictionary.

Как работает ключевой аргумент функции Python Max ()?

Последние примеры показывают интуитивные разработки максимальной функции: вы проходите один или несколько повторных документов в качестве позиционных аргументов.

Intermezzo : Что такое иеристы? Итализатор является объектом, из которого вы можете получить итератор. ITERATOR – это объект, на котором вы можете позвонить следующему () методу. Каждый раз, когда вы звоните следующим (), вы получаете «следующий» элемент, пока не получите все элементы из итератора. Например, Python использует итераторы для петлей, чтобы пройти все элементы списка, все символы строки или все клавиши в словаре.

Когда вы указываете клавишный аргумент, определите функцию, которая возвращает значение для каждого элемента Iterable. Тогда каждый элемент сравнивается на основе возвращаемого значения этой функции, а не указанным элементом (поведение по умолчанию).

Вот пример:

lst = 

def inverse(val):
   return -val

print(max(lst))
# 16

print(max(lst, key=inverse))
# 2

Мы определяем функцию обратной (), которая возвращает значение, умноженное на -1. Теперь мы печатаем два выполнения функции MAX (). Первый – это выполнение по умолчанию: максимум списка составляет 16. Второй использует ключ. Мы указываем «обратное» как функцию ключа. Python применяет эту функцию ко всем значениям . Это сравнивает эти новые значения друг с другом и возвращает максимум. Использование обратной функции Python делает следующие сопоставления:

Оригинальное значение Значение после обратного () применяется (основа для MAX ())
2 -2
4 -4
8 -8
16 -16

Python рассчитывает максимум на основе этих отображений. В этом случае значение 2 (с сопоставлением -2) является максимальным значением, потому что -2> -4> -8> -16.

Теперь давайте вернемся к начальному вопросу:

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

Мы обсудили, как можно получить доступ к данным в списке и кортеже с помощью индексации.

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

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

Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOGLE"}
print(type(Employee))
print("printing Employee data .... ")
print("Name : %s" %Employee)
print("Age : %d" %Employee)
print("Salary : %d" %Employee)
print("Company : %s" %Employee)

Выход:

<class 'dict'>
printing Employee data .... 
Name : John
Age : 29
Salary : 25000
Company : GOOGLE

Python предоставляет нам альтернативу использованию метода get() для доступа к значениям словаря. Результат будет тот же, что и при индексации.

Метод items()

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

Синтаксис:

Данный метод не принимает никаких аргументов.

Приведем пример использования данной функции.

Объявлен ​​словарь с именем . Ключи содержат названия продуктов, а значения — их цены. Используем для нашего словаря метод и сохраним в другой переменной с именем , а затем выведем на экран.

products = { 'Fresh Oil': 500, 'Mango Juice': 30, '5 star Chocalate': 20, 'Dan Fruit Cake':50 }
itemlist = products.items()
print('The output of items() method:\n', itemlist)

Выполнив данную программу, получим следующий результат:

Техника 3: Get () Метод проверки, существует ли ключ в словаре Python

Python Может использоваться для проверки того, присутствует ли определенный ключ в парах ключа-значений словаря.

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

Синтаксис:

dict.get(key, default=None)

Мы передаем ключ для поиска как аргумент метода GET (), и если функция Get () не возвращает i.e. Если ключ присутствует в диктоме, мы распечатаем его.

Пример 1:

inp_dict = {'Python': "A", 'Java':"B", 'Ruby':"C", 'Kotlin':"D"} 



if inp_dict.get('Python')!=None: 
		print("The key is present.\n") 
		 
else: 
		print("The key does not exist in the dictionary.") 



Выход:

The key is present.

Метод len()

Метод используется для подсчета общего количества элементов в словаре (под элементом понимается пара ключ-значение).

Синтаксис:

Этот метод принимает словарь в качестве аргумента и возвращает общее количество элементов этого словаря.

Давайте рассмотрим данный метод на примере. Следующий скрипт подсчитывает общее количество элементов словаря и выводит на экран это значение.

products = { 'Fresh Oil': 500, 'Mango Juice': 30, '5 star Chocolate': 20, 'Dan Fruit Cake':50 }
print("Total items of the dictionary are:", len(products))

Выполнив данный код, получим, что наш словарь состоит из 4 элементов:

С помощью конструктора dict()

Метод конструктора dict() аналогичен методам copy() и update() в Словаре Python. Конструктор dict() копирует первые элементы словаря в новый словарь, а затем выполняет метод update(), чтобы обновить новый словарь вторым элементом словаря.

Давайте рассмотрим программу для объединения заданных словарей с помощью метода dict() в Python.

Dict.py

 
dict1 = {            
    'Student' : 'Butler', 
    'Course' : 'Computer Science', 
    'Address' : 'Los Angeles' 
} 
 
dict2 = { 
    'Teacher' : 'Rosy', 
    'Subject' : 'Computer Science' 
} 
 
# Use dict() constructor 
d3 = dict(dict1) 
print("Before Merge", d3) 
d3.update(dict2) 
print("Merge two dictionaries", d3) # Merge two dictionaries   

Выход:

Before Merge {'Student': 'Butler', 'Course': 'Computer Science', 'Address': 'Los Angeles'} 
Merge two dictionaries {'Student': 'Butler', 'Course': 'Computer Science', 'Address': 'Los Angeles', 'Teacher': 'Rosy', 'Subject': 'Computer Science'} 

🔹 словари в действии

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

Мы начнем работать с этим словарем, присвоенным Переменная:

>>> ages = {"Gino": 15, "Nora": 30}

Значения доступа с помощью клавиш

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

Это пример того, как мы можем получить доступ к значению, соответствующему строке :

>>> ages = {"Gino": 15, "Nora": 30}
>>> ages
15

Обратите внимание, что синтаксис очень похож на индексацию строки, кортежа или списка, но теперь мы используем ключ в качестве индекса вместо целого числа. Если мы хотим получить доступ к значению, который соответствует «NORA», мы сделаем это:

Если мы хотим получить доступ к значению, который соответствует «NORA», мы сделаем это:

>>> ages = {"Gino": 15, "Nora": 30}
>>> ages
30

Совет: Если вы попытаетесь получить доступ к ключу, который не существует в словаре, вы получите :

>>> ages = {"Gino": 15, "Nora": 30}
>>> ages
Traceback (most recent call last):
  File "", line 1, in 
    ages
KeyError: 'Talina'#10>

Добавить пары клавиш

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

Это пример в холостом ходу:

>>> ages = {"Gino": 15, "Nora": 30}

# Add the key-value pair "Talina": 24
>>> ages = 24

# The dictionary now has this key-value pair
>>> ages
{'Gino': 15, 'Nora': 30, 'Talina': 24}

Изменить пару ключ

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

>>> ages = {"Gino": 15, "Nora": 30}

# The key "Gino" already exists in the dictionary, so its associated value
# will be updated to 45.
>>> ages = 45

# The value was updated to 45.
>>> ages
{'Gino': 45, 'Nora': 30}

Удаление пары ключа

Чтобы удалить пару ключ-значение, вы бы использовали Ключевое слово, за которым следует имя переменной, которая ссылается на словарь и, в рамках квадратных скобок , ключ пары ключа-значения:

Это пример в холостом ходу:

>>> ages = {"Gino": 15, "Nora": 30, "Talina": 45}

# Delete the key-value pair "Gino": 15.
>>> del ages

# The key-value pair was deleted.
>>> ages
{'Nora': 30, 'Talina': 45}

🔸 Мини-проект – словарь частот

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

Код

Мы будем писать функцию пошаговый шаг, чтобы увидеть логику для каждой строки кода.

Шаг 1: Первое, что нам нужно сделать, это написать заголовок функции

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

def freq_dict(data):

Шаг 2: Затем нам нужно создать пустой словарь, который будет сопоставлять каждый элемент списка, строки или кортеля до соответствующей частоты.

def freq_dict(data):
	freq = {}

Шаг 3: Затем нам нужно повторить список, строку или кортеж, чтобы определить, что делать с каждым элементом.

def freq_dict(data):
	freq = {}
	for elem in data: 

Шаг 4: Если элемент уже был включен в словарь, то элемент отображается более одного раза, и нам нужно добавить 1 на свою текущую частоту. Иначе, если элемент уже не в словаре уже, это первый раз, когда он появляется, и его начальное значение должно быть 1.

def freq_dict(data):
	freq = {}
	for elem in data:
		if elem in freq:
			freq += 1
		else:
			freq = 1

Шаг 5: Наконец, нам нужно вернуть словарь.

def freq_dict(data):
	freq = {}
	for elem in data:
		if elem in freq:
			freq += 1
		else:
			freq = 1
	return freq

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

Примеры

Здесь у нас есть пример использования этой функции

Обратите внимание, как словарь отображает каждый символ строки, сколько раз это происходит

>>> def freq_dict(data):
	freq = {}
	for elem in data:
		if elem in freq:
			freq += 1
		else:
			freq = 1
	return freq

>>> freq_dict("Hello, how are you?")
{'H': 1, 'e': 2, 'l': 2, 'o': 3, ',': 1, ' ': 3, 'h': 1, 'w': 1, 'a': 1, 'r': 1, 'y': 1, 'u': 1, '?': 1}

Это еще один пример, примененный к списку целых чисел:

>>> def freq_dict(data):
	freq = {}
	for elem in data:
		if elem in freq:
			freq += 1
		else:
			freq = 1
	return freq

>>> freq_dict()
{5: 2, 2: 5, 6: 2}

Отличная работа! Теперь у нас есть окончательная функция.

Итерационный словарь

Словарь можно повторять с помощью цикла for, как указано ниже.

Пример 1:

# цикл для печати всех ключей словаря

Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOGLE"}  
for x in Employee:  
    print(x)

Выход:

Name
Age
salary
Company

Пример 2:

#for цикл для печати всех значений словаря

Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOGLE"}  
for x in Employee:  
    print(Employee)

Выход:

John
29
25000
GOOGLE

Пример 3:

#for цикл для печати значений словаря с помощью метода values().

Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOGLE"}  
for x in Employee.values():  
    print(x)

Выход:

John
29
25000
GOOGLE

Пример 4:

#for цикл для печати элементов словаря с помощью метода items().

Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOGLE"}  
for x in Employee.items():  
    print(x)

Выход:

('Name', 'John')('Age', 29)('salary', 25000)('Company', 'GOOGLE')

Метод keys()

используется для возврата списка со всеми ключами словаря.

Синтаксис:

Этот метод также не принимает никаких аргументов.

Давайте рассмотрим метод keys() на примере. В скрипте объявлен ​​словарь с именем . Как и в предыдущем примере, ключи содержат названия продуктов, а значения — их цену. Применим метод , а возвращаемые значения сохраним в переменной с именем , которую затем выведем на экран.

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

products = { 'Fresh Oil': 500, 'Mango Juice': 30, '5 star Chocalate': 20, 'Dan Fruit Cake':50 }
keylist = products.keys()
print('The output of keys() method:\n', keylist)

Использование метода update(), когда оба словаря имеют одинаковые ключи

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

sameDict.py

 
# Defines the d1 dictionary in key- value pairs 
d1 = {     
    'Cricketer' : 'Nicholas Pooran', 
    'Basketball': 'Jordan', 
    'Football' : 'Zindane', 
    'Actress' : 'Jasmine Wiley'  
    } 
 
# Defines the d2 dictionary in key- value pairs 
d2 = { 'Tennis' : 'Maria', 
    'Stadium' : 'Amsterdam', 
    'Basketball' : 'Washington', 
    'Actress' : 'Elizabeth' } 
 
d1.update(d2) # append the d2 dictionary items into the d1 dictionary. 
print( "Merge two dictionaries :") 
print(d1) # print the merge dictionary 

Выход:

Merge two dictionaries : 
{'Cricketer': 'Nicholas Pooran', 'Basketball': 'Washington', 'Football': 'Zindane', 'Actress': 'Elizabeth', 'Tennis': 'Maria', 'Stadium': 'Amsterdam'} 

У нас есть два одинаковых ключа (Actress и Basketball) в обоих словарях. Когда мы выполняем метод обновления, последнее значение второго словаря переопределяет старые значения первого словаря. Когда словарь d1 выполняется, он печатает значения Washington и Elizabeth для ключей Actress и Basketball вместо Jasmine Wiley и Jordan.

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

copy() – создание копии словаря. Рассмотрим на примере:

dict1 = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
dict2 = dict1.copy()
print(dict2) #Выведет {'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин'}

get() – получение значения по ключу. Рассмотрим на примере:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.get('car')) #Выведет 'машина'

clear() – очистка словаря. Рассмотрим на примере:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
dict.clear()
print(dict) #Выведет {}

keys() – получение всех ключей словаря. Рассмотрим на примере:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.keys()) #Выведет  dict_keys()

values() – получение всех значений элементов словаря. Пример:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.values()) #Выведет dict_values() 

items() – получение всех элементов словаря, включая ключи. Рассмотрим на примере:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.items()) #Выведет dict_items()

pop() – удаляет и возвращает значение ключа. Рассмотрим на примере:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.pop('car')) #Выведет ‘машина’
print(dict) #Выведет {'apple': 'яблоко', 'orange': 'апельсин'}

popitem() – удаляет и возвращает имя и значение ключа. Пример:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.pop()) #Выведет ('orange', 'апельсин')
print(dict) #Выведет {'car': 'машина', 'apple': 'яблоко'}

setdefault() – получение значения по ключу, если такой ключ присутствует в словаре. Когда такого ключа нет, он создается со значением None (если оно не указано в свойствах). Рассмотрим на примере:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
print(dict.setdefault(‘car’) #Выведет 'машина'
print(dict.setdefault('home', 'дом') #Выведет 'дом'
print(dict) #Выведет {'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин', 'home': 'дом'}

update({}) – обновить значения по ключам, добавление новых ключей:

dict = {
'car': 'машина',
'apple': 'яблоко',
'orange': 'апельсин'
}
dict.update({'car': 'автомобиль', 'home': 'дом'})
print(dict) #Выведет {'car': 'автомобиль', 'apple': 'яблоко', 'orange': 'апельсин', 'home': 'дом'}

Словарь в словаре Python

Словарь тоже можно вложить в словарь. Например, словарь с пользователями на сайте.  У каждого пользователя хранится информация о нем имя и фамилия.

>>> users = {
…     ‘qwerty’: {
…     ‘name’: ‘john’,
…     ‘surname’: ‘brut’
…     },
…     ‘fill’: {
…     ‘name’: ‘philip’,
…     ‘surname’: ‘ivanov’
…     }
…     }
>>> for login, user in users.items():
…     print(«\nВаш логин: {login}»)
…     fullname = «{user} {user}»
…     print(«\tДобро пожаловать на сайт {fullname.title()}!»)

Ваш логин: qwerty
        Добро пожаловать на сайт John Brut!

Ваш логин: fill
        Добро пожаловать на сайт Philip Ivanov!

У нас определяется словарь users содержащий ключ- логин пользователя и значение — словарь с именем и фамилией. В процессе перебора словаря Python сохраняет ключ в переменной login, а словарь, связанный с ключом в переменной user. Выводим сообщение о логине пользователя на экран. Затем создаем переменную fullname с именем и фамилией извлеченную из словаря и выводим на экран. 

Please enable JavaScript to view the comments powered by Disqus.

Встроенные методы словаря

Встроенные методы словаря Python вместе с описанием приведены ниже.

Метод Описание
1 dic.clear() Используется для удаления всех элементов словаря.
2 dict.copy() Он возвращает мелкую копию словаря.
3 dict.fromkeys(iterable, value = None, /) Создает новый словарь из итерируемого объекта со значениями, равными value.
4 dict.get(key, default = “None”) Он используется для получения значения, указанного для переданного ключа.
5 dict.has_key(key) Он возвращает истину, если словарь содержит указанный ключ.
6 dict.items() Он возвращает все пары ключ-значение в виде кортежа.
7 dict.keys() Возвращает все ключи словаря.
8 dict.setdefault(key,default= “None”) Он используется для установки ключа в значение по умолчанию, если ключ не указан в словаре.
9 dict.update(dict2) Он обновляет словарь, добавляя в этот словарь пару ключ-значение dict2.
10 dict.values() Он возвращает все значения словаря.
11 len() Возвращает количество элементов в словаре
12 popItem() удаляет и возвращает последнюю пару элементов
13 pop() вернет значение ключа key, а также удалит его из словаря

Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: