访问集合的唯一元素

我有一set在Python从我删除基于条件的一个因素之一。 当这个集合只剩下1个元素时,我需要返回该元素。 我如何从集合中访问这个元素?

一个简单的例子:

S = set(range(5))
for i in range(4):
    S = S - {i}
# now S has only 1 element: 4
return ? # how should I access this element
# a lame way is the following
# for e in S:
#    return S

使用set.pop

>>> {1}.pop()
1
>>>

就你而言,这将是:

return S.pop()

但请注意,这将从集合中删除项目。 如果这是不可取的,你可以使用min | max

return min(S) # 'max' would also work here

演示:

>>> S = {1}
>>> min(S)
1
>>> S
set([1])
>>> max(S)
1
>>> S
set([1])
>>> 

我会用:

e = next(iter(S))

这是非破坏性的,即使在集合中有多个元素时也是如此。 更好的是,它可以选择提供默认值e = next(iter(S), default)

你也可以使用拆包:

[e] = S

解包技术可能是最快的方法,它包括错误检查,以确保该集只有一个成员。 缺点是它看起来很奇怪。


对不起,晚会晚了。 要访问集合中的元素,您总是可以将集合转换为列表,然后可以使用索引来返回所需的值。

以你的例子为例:

return list(S)[0]
链接地址: http://www.djcxy.com/p/53497.html

上一篇: Access the sole element of a set

下一篇: type after creation in recursive loop for merge sort