如何访问集合中任意元素的属性

How to access an attribute of an arbitrary element of a set

我有一个非空集 S,每个 s in S 都有一个属性 s.x,我知道它与 s 的选择无关。我想从 S 中提取这个公共值 a=s.x。肯定有比

更好的东西
s=S.pop()
a=s.x
S.add(s)

-- 也许代码很快,但我肯定不应该更改 S?

澄清:一些答案和评论建议遍历所有 S。我想避免这种情况的原因是 S 可能很大;无论 S 有多大,我上面的方法都会很快想到 运行;我唯一的问题是 S 发生了变化,我认为没有理由需要更改 S.

这与 this question 在只有一个元素时访问集合中的一个元素几乎相同但不完全相同——有些解决方案适用于此处,但不适用于此处,而其他解决方案则适用于工作但效率低下。但是使用 next(iter(something_iterable)) 非破坏性地获取元素的一般技巧仍然适用:

>>> S = {1+2j, 2+2j, 3+2j}
>>> next(iter(S))
(2+2j) # Note: could have been any element
>>> next(iter(S)).imag
2.0