Python против языка с планеты Х
Вы можете удалить выбранное значение из множества:
>>> s = set((1,2,3))
>>> s.remove(3)
>>> s
{1, 2}
Добавим во множество еще один элемент с помощью метода add():
>>> s = set((1,2,3))
>>> s
{1, 2, 3}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
Чтобы создать множество, воспользуйтесь функцией set(). Можно также разместить в фигурных скобках одно или несколько разделенных запятыми значений, как показано здесь:
>>> empty_set = set()
>>> empty_set
set()
>>> even_numbers = {0, 2, 4, 6, 8}
>>> even_numbers
{0, 2, 4, 6, 8}
>>> odd_numbers = {1, 3, 5, 7, 9}
>>> odd_numbers
{1, 3, 5, 7, 9}
Множество похоже на словарь, в котором значения отброшены, а оставлены только ключи. Как и в словаре, ключи должны быть уникальными. Вы используете множество, если хотите знать только, существует что-то или нет, а другая информация вам неважна. Это как сумка с ключами. Если же вам нужно прикрепить к ключу некую информацию, воспользуйтесь словарем.
{выражение для ключа : выражение для значения for выражение in итерабельныйобъект if условие}
>>> vowels = 'aeiou'
>>> word = 'onomatopoeia'
>>> vowel_counts = {letter: word.count(letter) for letter in set(word)
if letter in vowels}
>>> vowel_counts
{'e': 1, 'i': 1, 'o': 4, 'a': 2}
{выражениедляключа : выражениедлязначения for выражение in итерабельныйобъект}
>>> word = 'letters'
>>> letter_counts = {letter: word.count(letter) for letter in word}
>>> letter_counts
{'l': 1, 'e': 2, 't': 2, 'r': 1, 's': 1}
Мы проходим в цикле по каждой из семи букв строки 'letters' и считаем, сколько раз буква встречается
Присвоить значение кортежа другим переменным можно в один этап. Для каждого кортежа, возвращенного функцией items(), присвоим первый элемент кортежа (ключ) переменной card, а второй элемент (значение) — переменной contents:
>>> for card, contents in accusation.items():
... print('Card', card, 'has the contents', contents)
...
Card weapon has the contents lead pipe
Card person has the contents Col. Mustard
Card room has the contents ballroom
Итерирование по словарю (или его функция keys()) возвращает ключи. В этом примере в качестве ключей используются типы карт для настольной игры Clue (за пределами Северной Америки она называется Cluedo):
>>> accusation = {'room': 'ballroom', 'weapon': 'lead pipe',
... 'person': 'Col. Mustard'}
>>> for card in accusation: # или for card in accusation.keys():
... print(card)
...
room
weapon
person
Для того чтобы проитерировать не по ключам, а по значениям, используйте функцию values():
>>> for value in accusation.values():
... print(value)
...
ballroom
lead pipe
Col. Mustard
Для получения пар «ключ — значение» подходит функция items():
>>> for item in accusation.items():
... print(item)
...
('room', 'ballroom')
('weapon', 'lead pipe')
('person', 'Col. Mustard')
Если значения словаря изменяются, следует использовать функцию deepcopy().