Множества и словари
Множества
В Python есть понятия списков, множеств и словарей.
Список a=['Трубадур', 'Кот', 'Пёс', 'Осёл', 'Петух']
Множество
a={'Ничего на свете лучше нету',
'Мы к вам заехали на час',
'Рок-колыбельная',
'Луч Солнца Золотого',
'Ничего на свете лучше нету',
'Куда ты, тропинка, меня завела',
'А как известно, мы народ горячий'
}Список - это упорядоченная коллекция, множества - неупорядоченная. По индексу (как в списке) обратиться к множеству нельзя.
1. Cделать множество из списка
a=['Трубадур', 'Кот', 'Пёс', 'Осёл', 'Петух'] musicians=set(a) # получили множество.
2. Сделать список из множества
num_set = {1, 6, 5, 4, 3, 2,2,4,6}
a=list(num_set)3. Добавить элемент в множество:
playlist = { 'Venus', 'Yesterday', 'Fireball', 'Time', 'Poison' }
playlist.add('Thunderstruck') # добавляет Thunderstruck в playlist
print(playlist)Добавить элемент в множество из списка можно циклом и методом .add как в примере ниже:
playlist = {
'Venus', 'Yesterday', 'Fireball',
'Time', 'Poison', 'Thunderstruck'}
new_music = [
'Kashmir', 'Smoke on the Water',
'Bohemian Rhapsody', 'Zombie',
'Let It Be', 'Its My Life',]
# for new in new_music:
playlist.add(new)
Либо можно использовать второй вариант, который короче:
преобразуем список в множество и затем объединим два множества.
pl3 = playlist.union(set(new_music))
----------------------------------------------------------------------playlist_1 = {'Три белых коня', 'Happy new year', 'Снежинка'}
playlist_2 = {'Last christmas', 'Снежинка', 'Happy new year'}
playlist_3 = playlist_1.union(playlist_2)
print(playlist_3)playlist_1 = ['Три белых коня', 'Happy new year', 'Снежинка'] playlist_2 = ['Last christmas', 'Снежинка', 'Happy new year'] playlist_3 = [playlist_1 + playlist_2]
4.Если нужно найти песни, которые присутствуют в одном плейлисте, но отсутствуют во втором — поможет метод difference ().
playlist_1 = {'Голубой вагон', 'Облака', 'Yesterday', 'Наше лето'}
playlist_2 = {'Наше лето', 'Голубой вагон', 'Облака'}
playlist_3 = playlist_1.difference(playlist_2)
print(playlist_3)
# будет напечатано - {'Yesterday'}5.Поиск одинаковых элементов в двух множествах
films_1={'Форсаж', 'Достучаться до небес', 'Мстители: война бесконечности'}
films_2 = {'Мстители: война бесконечности', 'Форсаж', 'Матрица'}
films_3 = films_1.intersection(films_2)
print(films_3)
# будет напечатано - {'Форсаж', 'Мстители: война бесконечности'}Также можно использовать знаки | и & для объединения и поиска одинаковых элементов:
playlist_1 = {'Три белых коня', 'Happy new year', 'Снежинка'}
playlist_2 = {'Last christmas', 'Снежинка', 'Happy new year'}
playlist_3 = playlist_1.union(playlist_2) # или playlist1 | playlist2
print(playlist_3)
# {'Три белых коня', 'Happy new year', 'Снежинка', 'Last christmas'}
playlist_3 = playlist_1 & playlist_2
print(playlist_3)
# result {'Happy new year', 'Снежинка'}Словари
Обращение к словарю по ключу выдаст значение. Пример ниже:
english = {
'рука': 'hand',
'нога': 'leg',
'хвост': 'tail',
'питон': 'python',
'бэкенд-разработчик': 'back-end developer'
}
# Доступ по ключу: как по-английски рука?
print(english['рука'])Важно понимать, что ключи ведут себя как множества, а значения - как списки.
favorite_songs = {
'Тополиный пух': 'Иванушки international',
'Город золотой': 'Аквариум',
'Звезда по имени Солнце': 'Кино'
}
a=favorite_songs.values()
print(a) Аналогично командой a=favorite_songs.keys() будут извлечены значения ключей.
2. Превращение словаря в список и множество:
3. Замена значений в словаре по ключу:
english = {
'рука': 'hand',
'нога': 'leg',
'хвост': 'tail',
'питон': 'python',
'бэкенд-разработчик': 'back-end developer'
}
english['рука'] = 'arm' # Элементу с ключом 'рука' присвоим новое значение
print(english['рука'])english['голова'] = 'head'# также таким методом можно добавлять в словарь
# новые элементыОдновременное добавление нескольких элементов
english = {
'рука': 'arm',
'нога': 'leg',
'хвост': 'tail',
'питон': 'python',
'бэкенд-разработчик': 'back-end developer',
'голова': 'head'
}
# Объявим новый словарь
new_words = {'мозг': 'brain', 'логика': 'logic'}
# Добавим в словарь english элементы словаря new_words
english.update(new_words)
# Посмотрим, что теперь хранится в словаре english
print(english)
Циклы в словарях
favorite_songs = {
'Тополиный пух': 'Иванушки international',
'Город золотой': 'Аквариум',
'Звезда по имени Солнце': 'Кино',
'Space Oddity': 'David Bowie',
'Рыба': 'Аквариум',
'Серенада Трубадура': 'Муслим Магомаев',
}
# Извлечём и напечатаем только значения (values) каждого элемента
for singer in favorite_songs.values():
print('Доктор, я больше не могу слушать исполнителя ' + singer)
# А в этом цикле извлечём и напечатаем только ключи (keys) словаря
for music in favorite_songs.keys():
print('Доктор, я каждый день по три раза слушаю песню ' + music)Собираем словарь из двух списков:
friends_names = ['Аня', 'Коля', 'Лёша', 'Лена', 'Миша']
friends_cities = ['Владивосток', 'Красноярск', 'Москва', 'Обнинск', 'Чебоксары']
# Объявлен пустой словарь, его нужно будет наполнить элементами,
# каждый из которых составлен по схеме "имя: город"
friends = {}
for i in range(0, len(friends_names)):
friends[friends_names[i]] = friends_cities[i]
print("Лена живёт в городе " + friends['Лена'])Пример функции как проверить, есть ли ключ в словаре:
dic = {"A":1, "B":2}
def dicMemberCheck(key, dicObj):
if key in dicObj:
print("Existing key")
else:
print("Not existing")
dicMemberCheck("A")
dicMemberCheck("C")
# Результат: Existing key
# Результат: Not existingСписок всех команд в статье:
1 musicians=set(a) # получили множество
2 a=list(num_set) #сделали список из множества
3 playlist.add('Thunderstruck')#добавляет Thunderstruck в playlist(множество)
4 playlist_3 = playlist_1.union(playlist_2) #объединили множества
5 playlist_3 = playlist_1.difference(playlist_2) #нашли различия в множествах
6 films_3 = films_1.intersection(films_2) #нашли пересечения во множествах7 english['рука'] = 'arm' # Заменили значение по ключу "рука" или
# добавили в словарь
8 a=favorite_songs.values() # забрали значения из словаря
9 a=favorite_songs.keys() # забрали ключи из словаря
10 english.update(new_words) #добавление словаря в словарь
11 english.append('слово') # добавление элемента в список
12 data.get(points, 'Шторм') # достает значение ключа из словаря.Ссылка на шпаргалку по теме Словари и Множества от Yandex.
Все методы для словарей тут