2024-04-25 16:32:48 发布
网友
我有一个非空集S,每个s in S都有一个属性s.x,我知道它独立于s的选择。我想从S中提取这个公共值a=s.x。肯定有比这更好的东西
S
s in S
s.x
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))以无损方式获取元素的一般技巧仍然适用:
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
这与this question访问集合中的一个元素几乎是不同的,因为只有一个解决方案在这里不起作用,而另一些解决方案起作用但效率很低。但使用
next(iter(something_iterable))
以无损方式获取元素的一般技巧仍然适用:相关问题 更多 >
编程相关推荐