如何访问s的任意元素的属性

2024-04-25 16:32:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非空集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。你知道吗


Tags: 方法答案代码inadd属性评论原因
1条回答
网友
1楼 · 发布于 2024-04-25 16:32:48

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

相关问题 更多 >