Оглавление
- ЛЕКЦИЯ 1 – УСТАНОВКА PYTHON, БИБЛИОТЕК И IDE
- 1.1 Установка Python3
- 1.2 Установка в Python библиотек Qt5, Spyder3 и других модулей
- 1.3 Запуск стандартной графической оболочки IDLE
- 1.4 Запуск графической оболочки Spyder3
- 1.5 Использование сторонней IDE PyCharm
- 1.6 Компиляция в exe-файл
- 1.7 Если поломался Python и не работает pip, spyder3 или pyinstaller
- 1.8 Установка PyQt5 в Linux
- ЛЕКЦИЯ 2 – ОСНОВНЫЕ ТИПЫ ДАННЫХ, УСЛОВИЯ И ОПЕРАЦИИ
- 2.1 Числовые и строковые переменные
- 2.2 Условный оператор
- 2.3 Тернарный условный оператор
- ЛЕКЦИЯ 3 – ОСНОВНЫЕ КОМПОНЕНТЫ PYQT5
- 3.1 QWidget и QDialog
- 3.2 QPushButton
- 3.3 QLabel
- 3.4 QLineEdit
- 3.5 Практический пример
- 3.6 Конвертация файла «ui» в скрипт Python
- ЛЕКЦИЯ 4 – СПИСКИ, СЛОВАРИ, ЦИКЛЫ И МАССИВЫ
- 4.1 Списки и кортежи
- 4.2 Словари
- 4.3 Циклы
- Конец ознакомительного фрагмента
4.2 Словари
Структура данных, позволяющая идентифицировать ее элементы не по числовому индексу, а по произвольному, называется словарем или ассоциативным массивом. Соответствующая структура данных в языке Python 3 называется dict.
Каждый элемент словаря состоит из двух объектов: ключа и значения. В примере ниже ключом является название страны, а значением является название столицы. Ключ идентифицирует элемент словаря, значение является данными, которые соответствуют данному ключу. Значения ключей – уникальны, двух одинаковых ключей в словаре быть не может.
# Создадим пустой словарь Capitals
Capitals = dict()
# Заполним его несколькими значениями
Capitals['Russia'] = 'Moscow'
Capitals['Ukraine'] = 'Kiev'
Capitals['USA'] = 'Washington'
Countries = ['Russia', 'France', 'USA', 'Russia']
for country in Countries:
# Для каждой страны из списка проверим, есть ли она в словаре Capitals
if country in Capitals:
print('Столица страны ' + country + ': ' + Capitals[country])
else:
print('В базе нет страны c названием ' + country)
Столица страны Russia: Moscow
В базе нет страны c названием France
Столица страны USA: Washington
Столица страны Russia: Moscow
Методы словарей:
• clear() – очищает словарь;
• copy() – возвращает копию словаря;
• fromkeys(seq[, value]) – создает словарь с ключами из seq и значением value (по умолчанию None);
• get(key[, default]) – возвращает значение ключа, но если его нет, не бросает исключение, а возвращает default (по умолчанию None);
• items() – возвращает пары (ключ, значение);
• keys() – возвращает ключи в словаре;
• pop(key[, default]) – удаляет ключ и возвращает значение. Если ключа нет, возвращает default (по умолчанию бросает исключение);
• popitem() – удаляет и возвращает пару (ключ, значение). Если словарь пуст, бросает исключение KeyError. Помните, что словари неупорядочены;
• setdefault(key[, default]) – возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ с значением default (по умолчанию None);
• update([other]) – обновляет словарь, добавляя пары (ключ, значение) из other. Существующие ключи перезаписываются. Возвращает None (не новый словарь!);
• values() – возвращает значения в словаре.
Countries = ( 'Russia': 'Moscow', 'Ukraine': 'Kiev', 'USA': 'Washington', 'Kazakhstan': 'Astana' )
print(Countries)
key1 = 'USA'
key2 = 'us'
if key1 in Countries:
del Countries[key1]
try:
del Countries[key2]
except KeyError:
print('Нет элемента с ключом "' + key2 + '" в словаре')
print(Countries)
( 'Ukraine': 'Kiev', 'Russia': 'Moscow', 'Kazakhstan': 'Astana', 'USA': 'Washington' )
Нет элемента с ключом "us" в словаре
( 'Ukraine': 'Kiev', 'Russia': 'Moscow', 'Kazakhstan': 'Astana' )
# Преобразование списка-кортеджа в словарь
users = (
("+111123455", "Tom"),
("+384767557", "Bob"),
("+958758767", "Alice")
)
users_dict = dict(users)
print(users)
print(users_dict)
# получаем элемент с ключом "+111123455"
print(users_dict["+111123455"]) # Tom
# установка значения элемента с ключом "+384767557"
users_dict["+384767557"] = "Bob Smith"
print(users_dict["+384767557"]) # Bob Smith
(('+111123455', 'Tom'), ('+384767557', 'Bob'), ('+958758767', 'Alice'))
( '+958758767': 'Alice', '+384767557': 'Bob', '+111123455': 'Tom' )
Tom
Bob Smith
4.2.1 Сортировка словарей
# Пример подсчета одинаковых символов в текстовом файле с использованием словаря
my_dict = dict()
my_text = open(u'D:/text.txt', 'r').read()
for c in my_text:
if c in my_dict:
my_dict[c] = my_dict[c] + 1
else:
my_dict.update( ( c: 1 ) )
for w in sorted(my_dict, key=my_dict.get, reverse=True):
print(w, my_dict[w])
L 9
o 9
f 8
p 8