Наборы


Наборы - это списки без повторяющихся записей. Допустим, вы хотите собрать список слов, используемых в абзаце:

print(set("my name is Eric and Eric is my name".split()))
1
print ( set ( «меня зовут Эрик, а меня зовут Эрик» . split
( )))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Это распечатает список, содержащий «мой», «имя», «есть», «Эрик» и, наконец, «и». Поскольку в остальной части предложения используются слова, которые уже есть в наборе, они не вставляются дважды.

Наборы - это мощный инструмент в Python, поскольку они позволяют вычислять различия и пересечения между другими наборами. Например, предположим, что у вас есть список участников событий A и B:

a = set(["Jake", "John", "Eric"]) print(a) b = set(["John", "Jill"]) print(b)
1
2
3
4
a = set ([ «Джейк» , «Джон» , «Эрик» ])
печать ( а )
b = set ([ "Джон" , "Джилл" ])
печать ( б )
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Чтобы узнать, кто из участников присутствовал на обоих мероприятиях, вы можете использовать метод «пересечения»:

a = set(["Jake", "John", "Eric"]) b = set(["John", "Jill"]) print(a.intersection(b)) print(b.intersection(a))
1
2
3
4
5
a = set ([ «Джейк» , «Джон» , «Эрик» ])
b = set ([ "Джон" , "Джилл" ])
печать ( а . пересечение ( б ))
печать ( б . пересечение ( а ))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Чтобы узнать, кто из участников присутствовал только на одном из мероприятий, используйте метод «symric_difference»:

a = set(["Jake", "John", "Eric"]) b = set(["John", "Jill"]) print(a.symmetric_difference(b)) print(b.symmetric_difference(a))
1
2
3
4
5
a = set ([ «Джейк» , «Джон» , «Эрик» ])
b = set ([ "Джон" , "Джилл" ])
print ( а . симметричное_различие ( б ))
печать ( б . симметричная_разница ( а ))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Чтобы узнать, кто из участников посетил только одно мероприятие, а не другое, используйте метод «разницы»:

a = set(["Jake", "John", "Eric"]) b = set(["John", "Jill"]) print(a.difference(b)) print(b.difference(a))
1
2
3
4
5
a = set ([ «Джейк» , «Джон» , «Эрик» ])
b = set ([ "Джон" , "Джилл" ])
печать ( а . разница ( б ))
печать ( б . разница ( а ))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Чтобы получить список всех участников, воспользуйтесь методом «объединения»:

a = set(["Jake", "John", "Eric"]) b = set(["John", "Jill"]) print(a.union(b))
1
2
3
4
a = set ([ «Джейк» , «Джон» , «Эрик» ])
b = set ([ "Джон" , "Джилл" ])
print ( a . union ( b ))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

В приведенном ниже упражнении используйте указанные списки, чтобы распечатать набор, содержащий всех участников мероприятия A, которые не посетили мероприятие B.