Множества и словари
Множества
В 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.
Все методы для словарей тут