Словари и множества
Словарь (dictionary) в Python — это структура данных, представляющая собой коллекцию пар ключ-значение. Множество (set) — это неупорядоченная коллекция уникальных элементов.
Словари
Словарь создается с помощью фигурных скобок {} или функции dict(). Ключами могут быть любые неизменяемые объекты (строки, числа, кортежи), а значениями — любые объекты.
slovar = {'apple': 'яблоко', 'banana': 'банан'}
slovar['orange'] = 'апельсин' # Добавление новой пары ключ-значение
print(slovar['apple']) # Выведет 'яблоко'
del slovar['banana'] # Удаление элемента по ключу
Основные методы работы со словарями:
slovar.keys()— возвращает ключи словаря.slovar.values()— возвращает значения словаря.slovar.items()— возвращает пары ключ-значение.slovar.get(key, default=None)— возвращает значение по ключу, если ключ отсутствует, возвращается default.slovar.update(other_dict)— обновляет словарь, добавляя пары ключ-значение из другого словаря.
Множества
Множество создается с помощью фигурных скобок {} или функции set(). Множества содержат уникальные элементы и не сохраняют порядок элементов.
mnojestvo = {1, 2, 3}
mnojestvo.add(4) # Добавление нового элемента
mnojestvo.remove(2) # Удаление элемента
print(mnojestvo) # Выведет {1, 3, 4}
# Исходный список
my_list = [1, 2, 3, 3, 4, 5, 5, 6]
# Создание множества из списка
my_set = set(my_list)
print(my_set) # Вывод: {1, 2, 3, 4, 5, 6}
Основные операции над множествами:
mnojestvo1 | mnojestvo2— объединение двух множеств.mnojestvo1 & mnojestvo2— пересечение двух множеств.mnojestvo1 - mnojestvo2— разница двух множеств.mnojestvo1 ^ mnojestvo2— симметричная разница двух множеств.
Итерация по словарям в Python
Словари (или dict) в Python являются одной из самых мощных и часто используемых структур данных. Они позволяют хранить данные в виде пар «ключ-значение». В этом уроке мы рассмотрим различные способы итерации по словарю.
Основные понятия:
- Ключ (
key): Уникальный идентификатор элемента в словаре. - Значение (
value): Данные, связанные с ключом.
Создание словаря:
# Пример создания словаря
my_dict = {
'apple': 1,
'banana': 2,
'cherry': 3
}
Итерация по ключам:
Самый простой способ итерации по словарю – это перебор его ключей. Для этого используется метод .keys() или просто цикл for.
С использованием метода .keys()
for key in my_dict.keys():
print(key)
Вывод:
apple
banana
cherry
Без использования метода .keys()
По умолчанию, при использовании цикла for, словарь возвращает свои ключи:
for key in my_dict:
print(key)
Вывод будет таким же:
apple
banana
cherry
Итерация по значениям:
Если вам нужно получить только значения словаря, используйте метод .values().
for value in my_dict.values():
print(value)
Вывод:
1
2
3
Итерация по парам ключ-значение:
Для одновременного доступа к ключу и значению можно использовать метод .items().
for key, value in my_dict.items():
print(f'Фрукт: {key}, Количество: {value}')
Вывод:
Фрукт: apple, Количество: 1
Фрукт: banana, Количество: 2
Фрукт: cherry, Количество: 3
Итерация с сортировкой ключей:
Иногда требуется пройти по элементам словаря в определенном порядке, например, отсортированном по ключам. Для этого можно воспользоваться функцией sorted().
for key in sorted(my_dict):
print(f'{key}: {my_dict[key]}')
Вывод:
apple: 1
banana: 2
cherry: 3
Итерация с проверкой условий:
Часто бывает необходимо выполнять действия над элементами словаря при выполнении определённых условий.
for key, value in my_dict.items():
if value % 2 == 0:
print(f'Чётное количество: {key} - {value}')
Вывод:
Чётное количество: banana - 2
Итерация с изменением значений:
При необходимости изменить значение элементов словаря во время итерации следует быть осторожным, так как изменение словаря во время итерации может привести к ошибкам. Лучше создать новый словарь с измененными значениями.
new_dict = {}
for key, value in my_dict.items():
new_value = value * 10
new_dict[key] = new_value
print(new_dict)
Вывод:
{'apple': 10, 'banana': 20, 'cherry': 30}
Эти примеры охватывают основные аспекты работы со словарями в Python. Практикуйтесь с различными типами данных и задачами, чтобы лучше освоить работу с этой структурой!
Оператор * (звездочка) — распаковка
*fruits
Что делает * (оператор распаковки):
- Берет итерируемый объект (словарь
fruits) - «Распаковывает» его элементы
- Для словарей распаковываются только КЛЮЧИ
# fruits = {'apple': 'яблоко', 'banana': 'банан'}
*fruits # превращается в: 'apple', 'banana'
Когда вы применяете * к словарю, Python получает только ключи:
fruits = {'apple': 'яблоко', 'banana': 'банан'}
# fruits.keys() возвращает ключи
keys = fruits.keys() # dict_keys(['apple', 'banana'])
# *fruits распаковывает эти ключи
# Эквивалентно:
print('apple', 'banana')
Параметр sep='\n'
print(*fruits, sep='\n')
Что делает sep='\n':
sep(separator) — разделитель между аргументами- По умолчанию
sep=' '(пробел) sep='\n'означает: разделять аргументы ПЕРЕНОСОМ СТРОКИ
Без sep='\n':
print(*fruits) # print('apple', 'banana')
# Вывод: apple banana (в одной строке, через пробел)
print(*fruits) # print('apple', 'banana')
# Вывод: apple banana (в одной строке, через пробел)
С sep='\n':
print(*fruits, sep='\n') # print('apple', 'banana', sep='\n')
# Вывод:
# apple
# banana
# (каждый в отдельной строке)
Источник: https://stepik.org/lesson/1582309/step/9?unit=1603658
Было ли это полезно?
0 / 0