如何在不移除元素的情况下从集合中检索元素?

  • 问题:
  • 假设如下:

    >>> s = set([1, 2, 3])

    如何在不执行s.pop()的情况下从s中获取值(任何值)?我想将该项保留在集合中,直到我确定我可以删除它-这是我只能在异步调用另一个主机之后才能确定的

    又快又脏:

    >>> elem = s.pop()
    >>> s.add(elem)

    但是你知道更好的方法吗?最好是在恒定时间内

  • 答案:
  • 两个不需要复制整个集合的选项:

    for e in s:
    break
    # e is now an element from s

    或者

    e = next(iter(s))

    但一般来说,集合不支持索引或切片