【发布时间】:2015-03-14 01:25:10
【问题描述】:
我有一个非空集合S,每个s in S 都有一个属性s.x,我知道它与s 的选择无关。我想从S 中提取这个公共值a=s.x。肯定有比
s=S.pop()
a=s.x
S.add(s)
-- 也许代码很快,但我肯定不应该更改S?
澄清:一些答案和 cmets 建议遍历所有 S。我想避免这种情况的原因是S 可能很大;不管S 多大,我认为我上面的方法运行得很快;我唯一的问题是S 发生了变化,我认为没有理由需要更改S。
【问题讨论】:
-
我不太确定你的目的是什么,但像
[x.x for x in S]这样的东西可以吗? -
当然可以(然后我可以只取该列表的第 0 个元素),但如果
S有一百万个元素怎么办?当答案在我找到的第一个答案中时,为什么要遍历所有这些?请注意,s.x对于S中的每个元素s都是相同的。 -
你说得对,我不确定你要做什么。