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

时间:2015-03-14 01:25:11

标签: python set

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

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

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

澄清:一些答案和评论建议迭代所有S。我想避免这种情况的原因是S可能很大;我认为上面的方法很快就会跑得很快S;我唯一的问题是S发生了变化,我认为没有必要更改S

1 个答案:

答案 0 :(得分:2)

这与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