Python:访问集合的成员

emu*_*emu 6 python set python-3.x

假设我有一组myset可能相同的自定义对象,尽管它们的引用不同(a == b and a is not b).现在,如果我add(a)对集合,Python正确地假定a in myset and b in myset即使len(myset) == 1集合中只有对象.

这很清楚.但现在是否可以仅a使用b?从集合中提取某些值?假设对象是可变的,我想要改变它们,忘记直接引用a.换句话说,我正在寻找myset[b]操作,它将完全返回a集合的成员.

在我看来,类型set不能这样做(比遍历其所有成员更快).如果是这样,至少有一种有效的解决方法吗?

Mar*_*ers 5

我认为这不set支持在O(1)时间内检索项目,但您可以使用dict替代项.

d = {}
d[a] = a
retrieved_a = d[b]
Run Code Online (Sandbox Code Playgroud)