访问一组的唯一元素访问一组的唯一元素(Access the sole element of a se

2019-05-12 06:58发布

我有一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

Answer 1:

使用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])
>>> 


Answer 2:

我会用:

e = next(iter(S))

这是无损和作品,即使有集合中的一个以上的元素。 更好的是,它必须提供一个默认值的选项e = next(iter(S), default)

你也可以使用拆包:

[e] = S

拆包技术很可能是最快的方法,它包括错误检查,以确保该组只有一个成员。 不足之处是,它看起来很奇怪。



Answer 3:

对不起,迟到了。 从一组访问一个元素可以随时施放设定成一个列表,然后你可以使用索引来返回你想要的值。

在您的例子中:

return list(S)[0]


Answer 4:

您可以将最后一个元素赋值给一个变量,使用star operation

>>> a={"fatih"}
>>> b=str(*a)
>>> b
'fatih'

现在varible b有一个string object

如果鞋底elemant是一个数字,你可以使用int()

>>> a={1}
>>> c=int(*a)
>>> c
1


文章来源: Access the sole element of a set
标签: python set