我已阅读 this但它似乎对我不起作用 -
>>> dict = {}
>>> dict[ "a" ] = set(("1111","test1"))
>>> dict
{'a': set(['1111', 'test1'])}
>>> dict[ "a" ].add( ("2222","test2"))
>>> dict
{'a': set(['1111', 'test1', ('2222', 'test2')])}
我还期望第一个看起来像元组 - 为什么它被拆分了?
我想在做的时候:
>>> for key,val_set in dict.items() :
... for val in val_set :
... print val
...
1111
test1
('2222', 'test2')
打印 2 件而不是 3 件。
请您参考如下方法:
set() 从一个可迭代对象 中获取值并分别添加每个值。您传入了一个元组,它是一个具有两个值的可迭代对象。
如果您想添加元组本身,您需要将其包装在一个可迭代对象中,例如列表:
set([("1111","test1")])
在 Python 3 中,您可以改为使用集合显示来创建新集合:
{("1111","test1")}
一组显示采用逗号分隔的元素,("1111", "test1") 是这里的一个元组元素。
在另一篇文章中,集合是用集合显示创建的(所以 {tuple1, tuple2, etc.}),答案使用 itertools 函数或一个generator expression生成要处理的 set() 函数的元组序列; a 两者都产生可迭代类型。
