Как использовать наборы Python и добавлять к нему строки в качестве значения словаря
Я пытаюсь создать словарь, который имеет значения как объект Set. Мне нужен набор уникальных имен, связанных с уникальной ссылкой). Моя цель - попытаться создать что-то вроде:
AIM:
Dictionary[key_1] = set('name')
Dictionary[key_2] = set('name_2', 'name_3')
Добавление в SET:
Dictionary[key_2].add('name_3')
Однако использование заданного объекта разбивает строку name
на символы, которые ожидаются, как показано здесь. Я попытался сделать строку кортежем, т.е. set(('name'))
и Dictionary[key].add(('name2'))
, но это не работает так, как требуется, потому что строка разделяется на символы.
Это единственный способ добавить строку в набор через список, чтобы остановить его разбиение на символы типа
'n', 'a', 'm', 'e'
Любые другие идеи будут с благодарностью восприняты.
Ответы
Ответ 1
Вы можете написать один элемент tuple, как объяснил @larsmans, но легко забыть конечную запятую. Это может быть менее подвержено ошибкам, если вы просто используете списки в качестве параметров для конструктора и методов set:
Dictionary[key_1] = set(['name'])
Dictionary[key_2] = set(['name_2', 'name_3'])
Dictionary[key_2].add(['name_3'])
должны работать так, как вы ожидаете.
Ответ 2
('name')
не является кортежем. Это просто выражение 'name'
, в скобках. Набирается одноэлементный кортеж ('name',)
; одноэлементный список ['name']
красивее и работает тоже.
В Python 2.7, 3.x вы также можете написать {'name'}
для построения набора.