如何使用 Python 集并将字符串作为字典值添加到其中
Posted
技术标签:
【中文标题】如何使用 Python 集并将字符串作为字典值添加到其中【英文标题】:How to use Python sets and add strings to it in as a dictionary value 【发布时间】:2014-08-30 12:12:21 【问题描述】:我正在尝试创建一个将值作为 Set 对象的字典。我想要一组与唯一引用关联的唯一名称)。我的目标是尝试创造类似的东西:
目标:
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'
任何其他想法将不胜感激。
【问题讨论】:
在我的电脑(python 2.7.6)上,set.add
不会破坏字符串(而 set 构造函数会破坏),那么为什么不创建一个空集并添加字符串呢?
Dictionary[Key_1] = Set(['name_1']) --> 输入原来是一个列表,然后 Dictionary[Key_1].add('name_2') --> 不需要输入作为列表似乎可以解决这个问题。然后我从一开始就有一个 Set 对象。感谢所有建议/帮助。
【参考方案1】:
您可以像@larsmans 解释的那样编写单个元素元组,但很容易忘记结尾的逗号。如果您只使用列表作为 set 构造函数和方法的参数,则可能不太容易出错:
Dictionary[key_1] = set(['name'])
Dictionary[key_2] = set(['name_2', 'name_3'])
Dictionary[key_2].add(['name_3'])
都应该按照您的预期工作。
【讨论】:
我发现当我使用 Dictionary.add['name_3'] 之后,我得到一个异常(unhashable type: 'list')。我找到的唯一解决方案是使用 .add('name-3') --> 现在不是单个列表(但仅适用于 Set 构造函数)。 请看我写的:.add(['name_3'])
和.add['name_3']
不一样【参考方案2】:
('name')
不是元组。它只是表达式'name'
,带括号。一个元素元组写成('name',)
;单元素列表['name']
更漂亮,也可以工作。
在 Python 2.7、3.x 中也可以写 'name'
来构造集合。
【讨论】:
以上是关于如何使用 Python 集并将字符串作为字典值添加到其中的主要内容,如果未能解决你的问题,请参考以下文章
如何从firebase数据库中检索数据作为字符串而不是字典并将其添加到数组中?
使用 for loop .splitlines 循环将键和值添加到字典