Наборы
Наборы - это списки без повторяющихся записей. Допустим, вы хотите собрать список слов, используемых в абзаце:
print(set("my name is Eric and Eric is my name".split()))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Намекать Решение Запустить Сессия неактивна
Это распечатает список, содержащий «мой», «имя», «есть», «Эрик» и, наконец, «и». Поскольку в остальной части предложения используются слова, которые уже есть в наборе, они не вставляются дважды.
Наборы - это мощный инструмент в Python, поскольку они позволяют вычислять различия и пересечения между другими наборами. Например, предположим, что у вас есть список участников событий A и B:
a = set(["Jake", "John", "Eric"])
print(a)
b = set(["John", "Jill"])
print(b)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Намекать Решение Запустить Сессия неактивна
Чтобы узнать, кто из участников присутствовал на обоих мероприятиях, вы можете использовать метод «пересечения»:
a = set(["Jake", "John", "Eric"])
b = set(["John", "Jill"])
print(a.intersection(b))
print(b.intersection(a))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Намекать Решение Запустить Сессия неактивна
Чтобы узнать, кто из участников присутствовал только на одном из мероприятий, используйте метод «symric_difference»:
a = set(["Jake", "John", "Eric"])
b = set(["John", "Jill"])
print(a.symmetric_difference(b))
print(b.symmetric_difference(a))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Намекать Решение Запустить Сессия неактивна
Чтобы узнать, кто из участников посетил только одно мероприятие, а не другое, используйте метод «разницы»:
a = set(["Jake", "John", "Eric"])
b = set(["John", "Jill"])
print(a.difference(b))
print(b.difference(a))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Намекать Решение Запустить Сессия неактивна
Чтобы получить список всех участников, воспользуйтесь методом «объединения»:
a = set(["Jake", "John", "Eric"])
b = set(["John", "Jill"])
print(a.union(b))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Намекать Решение Запустить Сессия неактивна
В приведенном ниже упражнении используйте указанные списки, чтобы распечатать набор, содержащий всех участников мероприятия A, которые не посетили мероприятие B.