1

我有一个作为x = frozenset({"a":1,"b":2}). 我无法找到一种能够访问字典中项目的方法。有没有办法解冻frozenset?下面给出的是我得到的错误。

In [1]: x = frozenset({"a":1,"b":2})

In [2]: x
Out[2]: frozenset({'a', 'b'})

In [3]: x["a"]
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-c47cedd3f38d> in <module>()
----> 1 x["a"]

TypeError: 'frozenset' object has no attribute '__getitem__'

非常感谢任何帮助。

4

1 回答 1

4

构造frozenset函数需要一个可迭代的!正如评论中提到的,当您迭代 a 时dict,您只是在迭代它的键,因此值会丢失。

x = frozenset({"a": 1,"b": 2})
# frozenset(['a', 'b'])

您可以从dict的项目中创建它:

x = frozenset({"a": 1, "b": 2}.items())
# frozenset([('a', 1), ('b', 2)])

现在你可以简单地把它变成一个dict

d = dict(x)
# {'a': 1, 'b': 2}
于 2017-01-23T12:24:34.917 回答