我正在尝试创建一个将值作为Set对象的字典。我想要一个与唯一引用相关联的唯一名称集合。我的目标是尝试创造类似的东西:
AIM:
Dictionary[key_1] = set('name')
Dictionary[key_2] = set('name_2', 'name_3')
添加到SET:
Dictionary[key_2].add('name_3')
但是,使用set对象会将name
字符串分解为预期显示为here的字符。我试图将字符串设为元组,即set(('name'))
和Dictionary[key].add(('name2'))
,但这不能按要求工作,因为字符串会被拆分为字符。
是通过列表向字符串添加字符串以阻止它被分解为
等字符的唯一方法'n', 'a', 'm', 'e'
非常感谢任何其他想法。
答案 0 :(得分:15)
('name')
不是元组。它只是表达式'name'
,括号括起来。写一个单元素元组('name',)
;单元素列表['name']
更漂亮也适用。
在Python 2.7,3.x中,您还可以编写{'name'}
来构造集合。
答案 1 :(得分:14)
你可以像@larsmans一样编写单个元素元组,但是很容易忘记尾随的逗号。如果您只使用列表作为集合构造函数和方法的参数,则可能不太容易出错:
Dictionary[key_1] = set(['name'])
Dictionary[key_2] = set(['name_2', 'name_3'])
Dictionary[key_2].add(['name_3'])
应该按照你期望的方式工作。