Существуют удобные функции для работы с множествами Python. О множествах читайте на странице множество Python. Покажу вам как мешать списки с множествами. В первом примере покажу вам как вывести циклом for простой список.
#!/usr/bin/python3
chars = ['A', 'B', 'C']
# простой вывод в столбик
for item in chars:
print(item, end='\n')
'''
вывод:
A
B
C
'''
В этом примере мы выведем список в виде: ключ значение. Выводиться будет список. Нам поможет функция enumerate. Эта функция позволяет нам итерировать по объекту с параллельным автоматическим счётчиком. Вы можете передать функции необязательный аргумент. Он позволяет задавать начальное значение счётчика. Как это ни странно, в итоге получится кортеж (х, х).
chars = ['A', 'B', 'C']
# выводит ключ - значение (0, 'A')
# enumerate(chars, 3) - 3 необязательный параметр
for item in enumerate(chars):
print(item, end='\n')
'''
вывод:
(0, 'A')
(1, 'B')
(2, 'C')
'''
функция zip полезна при смешивании множества со списком. Но прежде чем мешать нужно убедиться равном количестве элементов как с одной, так и с другой стороны. Если в множестве будет 3 значения, а в списке 4, то получится 3 кортежа. При таком выводе не появится ошибка.
chars = ['A', 'B', 'C']
fruit = {'Aplle', 'Banana', 'Cherry'}
# смешивает значения 2 массивов
for item in zip(chars, fruit):
print(item, end='\n')
'''
вывод:
('A', 'Banana')
('B', 'Aplle')
('C', 'Cherry')
'''
Теперь рассмотрим другой пример. У нас есть коллекция произвольных объектов с доступом по ключу. Точнее сказать словарь. Тип данных dict (словарь). Функция items возвращает пары (ключ, значение). Если в этом примере удалить функцию, то появится ошибка.
dict = {'name': 'Mike', 'ref': 'Python', 'sys':'Win'}
# выводит ключ - значение sys = Win
for key, value in dict.items():
print(key, '=', value)
'''
вывод:
ref = Python
name = Mike
sys = Win
'''
Хочу показать как добавлять элементы в конец множества. Функция add добавляет элемент в множество.
# множество
status={'work', 'error', 'install'}
print(type(status))
#добавляет элемент status1 в множество
status.add('status1')
print(status)
'''
вывод:
<class 'set'>
{'install', 'status1', 'work', 'error'}
'''
Функция update собирает множество из разных частей. Одним его значением будет низменный первое множество. Другими значениями будут символы второго множества. Он разобьёт строку на символы. В результате символы станут значениями множества. Трудно сказать, когда это может пригодиться? Решать вам?
status={'aabb'}
#добавляет несколько элементов в множество
status.update('aabbccdd')
print(status)
'''
вывод:
{'a', 'aabb', 'b', 'c', 'd'}
Функция copy позволяет скопировать множество. Новое множество не будет связано со своей копией.
status={'work', 'error', 'install'}
#возвращает копию множества
status_new = status.copy()
print(status_new)
'''
вывод:
{'error', 'install', 'work'}
'''
Вы можете рандомно удалять элементы множества. Функция pop удаляет один элемент из множества случайным образом.
status={'work', 'error', 'install'}
#удаляет один элемент из множества случайным образом
status.pop()
print(status)
'''
вывод (первый раз):
{'work', 'error'}
вывод (второй раз):
{'install', 'work'}
'''
Благодаря функции intersection вы можете найти общие значения двух множеств. Вы можете написать скрипт для проверки сообщений. Очень часто пользователи спамят в комментариях и нужна защита. Сделайте два множества. Пусть в одном множестве будут слова из комментария. Во второе множество поместите стоп-слова. Когда вы сравните два множества (пересечение), то могут появится совпадения. Выполните проверку на количество совпадений. Если есть хоть одно совпадение, то выводим сообщение о том, что вы ваша тематика не подходит к нашей статье (вы спамите).
status={'work', 'error', 'install'}
status2={'work2', 'error2', 'install2','new_element'}
#возвращает элементы, принадлежащие обоим множествам
status.intersection(status2)
print(status)
'''
вывод:
{'install', 'work', 'error'}
'''
Функция difference поможет найти отличия одного множества от другого. Ищите в большом малое. Чем меньше сравниваемое множество, тем меньше значений появится на выводе.
status={'work', 'error', 'install', 'new_element'}
status2={'work2', 'error2', 'install2'}
#возвращает элементы из множества status, которых нет в status2
status.difference(status2)
print(status)
'''
вывод:
{'install', 'error', 'new_element', 'work'}
'''