×
  • 1. Установка Python 3.7
  • 2. Варианты выполнения кода. Первая программа
  • 3. Объекты. Числа и операции над ними
  • 4. Переменные в Python. Оператор присваивания
  • 5. Функция input()
  • 6. Функция print()
  • 7. Деление нацело и деление по остатку
  • 8. Функции trunc, floor, ceil
  • 9. Деление нацело и по остатку отрицательных чисел в Python
  • 10. Логический тип Bool. Операции сравнения
  • 11. Cтроки и операции над ними
  • 12. Строки: индексы и срезы
  • 13. Строки и их методы
  • 14. Списки и операции над ними
  • 15. Списки: индексы и срезы
  • 16. Списки и их методы
  • 17. Условный оператор if
  • 18. Вложенный оператор if
  • 19. Множественный выбор elif
  • 20. Цикл while
  • 21. Обход всех цифр числа с помощью while
  • 22. Алгоритм Евклида
  • 23. Цикл while. Нахождение всех делителей числа
  • 24. Цикл while. Инструкции break, continue, else
  • 25. Функция range и итерируемые объекты
  • 26. Цикл for. Обход элементов функции range
  • 27. Цикл for. Обход списков и строк
  • 28. Установка, настройка и использование PyCharm
  • 29. Метод подсчета. Сортировка подсчетом Python
  • 30. Вложенные циклы
  • 31. Вложенные списки
  • 32. Треугольник Паскаля
  • 33. Множества в Python. Тип данных set
  • 34. Словари Python. Операции и методы словаря
  • 35. 4 Ситуации, где полезно использовать словарь
  • 36. Как отсортировать словарь в Python
  • 37. Кортежи (tuple). Операции и методы кортежей
  • 38. Функции (def). Определение и вызов функции
  • 39. Зачем нужны функции в программировании
  • 40. Возвращаемое значение функции. Оператор return
  • 41. Область видимости: локальная, глобальная и встроенная.
  • 42. Вложенные функции Python
  • 43. Замыкания в Python. Closure Python
  • 44. Замыкания в Python Часть 2
  • 45. Передача аргументов. Сопоставление аргументов по имени и позиции
  • 46. *args и **kwargs Python. Передача аргументов в функцию
  • 47. Рекурсия в Python. Рекурсивная функция Часть 1
  • 48. Рекурсия в Python. Рекурсивная функция Часть 2
  • 49. Рекурсивный обход файлов
  • 50. Функция enumerate
  • 51. Анонимная функция Lambda
  • 52. Генераторы списков Python | List comprehension
  • 53. Генераторы списков 2 | List comprehension | Вложенные генераторы списков
  • 54. Выражения-генераторы
  • 55. Функция генератор. Создание генератора при помощи yield
  • 56. Функция map Python.
  • 57. Функция filter
  • 58. Функция zip python
  • 59. Сортировка коллекций в Python. Метод sort и функция sorted
  • 60. Декораторы в Python Часть 1
  • 61. Декораторы в Python Часть 2
  • 62. Сортировка по ключу Python. Аргумент key
  • 63. Установка модулей в Python || Установка пакета Python
  • 64. Работа с файлами в Python. Чтение и запись данных
  • 65. Экранированные и служебные символы в Python
  • 66. Встроенная функция isinstance
  • 67. Функции all и any.
  • 68. Форматирование строк. Метод format
  • 69. F-строка
  • 70. Импорт стандартных модулей
  • 71. Импорт собственных модулей в Python
  • 72. 7 видов вызываемых (callable) объектов в Python
  • 73. Метод split и метод join Python
  • 74. Пакеты в Python. Файл __init__, переменная __all__
  • 75. Работаем с JSON в Python. Парсинг JSON, сохраняем JSON в файл
  • Словари (dict)

    В Python имеется еще один составной тип данных, называемый словарем, который похож на список. Словарь (dict) — неупорядоченная коллекция произвольных объектов с доступом по ключу. Словарь более известен как ассоциативный массив. Словарь состоит из набора пар "Ключ-Значение". И в отличии от списка, где к каждому элементу можно обратиться по его порядковому номеру(индексу), в словаре обращение к элементу происходит по ключу.

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

    Вы можете определить словарь, включив в фигурные скобки список пар "Ключ-значение", разделенных запятыми. Двоеточие (:) отделяет каждый ключ от связанного с ним значения:

     d = {
        ключ 1: значение,
        ключ 2: значение,
          ....
        ключ N: значение
    }

    Пример: мы можем связать (ассоциировать) названия футбольной команды с городом, где она основана:

     teams = {
        'Arsenal': 'London',
        'Bayern': 'Munich',
        'PSG': 'Paris',
    }
    Доступ к значениям словаря

    Для получения значения внутри пары вы должны обратиться по ключу dict[key]

    >>> teams['PSG']
    'Paris'
    >>> teams['Arsenal']
    'London'

    Если попытаетесь обратиться к ключу, которого нет, получится исключение типа KeyError

    >>> teams['Chelsea']
    Traceback (most recent call last):
      File "", line 1, in 
        teams['Chelsea']
    KeyError: 'Chelsea'
    Добавление нового элемента

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

    >>> teams
    {'Arsenal': 'London', 'Bayern': 'Munich', 'PSG': 'Paris'}
    >>> teams['Sporting'] = 'Lisbon'
    >>> teams
    {'Arsenal': 'London', 'Bayern': 'Munich', 'PSG': 'Paris', 'Sporting': 'Lisbon'}
    Изменение элемента

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

    >>> teams
    {'Arsenal': 'London', 'Bayern': 'Munich', 'PSG': 'Paris', 'Sporting': 'Lisbon'}
    >>> teams['Arsenal']='Лондон'
    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris', 'Sporting': 'Lisbon'}
    Удаление элемента

    Чтобы удалить элемент словаря, нужно воспользоваться командой del

    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris', 'Sporting': 'Lisbon'}
    >>> del teams['Sporting']
    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris'}

    Операции со словарем

    Нахождение длины словаря

    Чтобы найти длину словаря(количество пар "ключ-значение"), нужно воспользоваться функцией len()

    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris'}
    >>> len(teams)
    3
    >>> len({})
    0
    >>> len({'a':[1,2,3]})
    1
    Проверка вхождения ключа в словарь

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

    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris'}
    >>> 'Bayern' in teams
    True
    >>> 'Munich' in teams
    False

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

    Метод .clear()

    Полностью очищает словарь

    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris'}
    >>> teams.clear()
    >>> teams
    {}
    Метод .get(key [,default])

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

    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris'}
    >>> teams.get('PSG')
    'Paris'
    >>> teams.get('Porto')
    >>> print(teams.get('Porto'))
    None
    >>> teams.get('Porto','Not exist')
    'Not exist'
    >>> teams.get('Porto',999)
    999
    Метод .setdefault(key [,default])

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

    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris'}
    >>> teams.setdefault('PSG')
    'Paris'
    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris'}
    >>> teams.setdefault('Porto')
    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris', 'Porto': None}
    >>> teams.setdefault('Benfika','Lisbon')
    'Lisbon'
    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris', 'Porto': None, 'Benfika': 'Lisbon'}
    Метод .pop(key [,default])

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

    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris', 'Porto': None, 'Benfika': 'Lisbon'}
    >>> print(teams.pop('Porto'))
    None
    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris', 'Benfika': 'Lisbon'}
    >>> teams.pop('Benfika','Hello')
    'Lisbon'
    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris'}
    >>> teams.pop("Chelsea")
    Traceback (most recent call last):
      File "", line 1, in 
        teams.pop("Chelsea")
    KeyError: 'Chelsea'
    >>> teams.pop("Chelsea","Hello")
    'Hello'
    Метод .keys()

    Метод, который возвращает коллекцию всех ключей в словаре

    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris'}
    >>> teams.keys()
    dict_keys(['Arsenal', 'Bayern', 'PSG'])
    Метод .values()

    Метод, который возвращает коллекцию всех значений в словаре

    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris'}
    >>> teams.values()
    dict_values(['Лондон', 'Munich', 'Paris'])
    Метод .items()

    Метод, который возвращает коллекцию всех пар "ключ-значение"

    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris'}
    >>> teams.items()
    dict_items([('Arsenal', 'Лондон'), ('Bayern', 'Munich'), ('PSG', 'Paris')])

    Обход элементов словаря в цикле for

    При обходе элементов в переменной i по умолчанию будут сохранятся значения ключей

    >>> teams
    {'Arsenal': 'Лондон', 'Bayern': 'Munich', 'PSG': 'Paris'}
    >>> for i in teams:
    	print(i)
    Arsenal
    Bayern
    PSG

    Но, зная ключ, можно обратиться к значению этого ключа

    >>> for i in teams:
    	print(i, teams[i])
    Arsenal Лондон
    Bayern Munich
    PSG Paris

    Обойти только значения словаря можно при использовании метода .values()

    >>> for i in teams.values():
    	print(i)
    Лондон
    Munich
    Paris

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

    >>> for item in teams.items():
    	key, value = item[0], item[1]
    	print(key, value)
    Arsenal Лондон
    Bayern Munich
    PSG Paris
    >>> for key, value in teams.items():
    	print(key, value)
    Arsenal Лондон
    Bayern Munich
    PSG Paris

    Попрактиковаться на stepik Перейти

    Записывайтесь на курсы по Python

    Задать вопрос