Как использовать наборы 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'} для построения набора.