1. ホーム
  2. python

[解決済み] 集合から要素を削除せずに取り出すには?

2022-03-18 13:40:42

質問

次のように仮定する。

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

の値(任意の値)を取り出すにはどうすればよいのでしょうか? s を行わずに s.pop() ? 私は、そのアイテムを削除できると確信するまで、セットに残しておきたいのです。これは、他のホストへの非同期呼び出しの後でのみ確信できることです。

クイック&ダーティ

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

しかし、もっと良い方法をご存知でしょうか?理想は定時間で。

どのように解決するのですか?

セット全体をコピーする必要がない2つのオプション。

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

または...

e = next(iter(s))

しかし、一般的にセットはインデックス作成やスライシングをサポートしていません。