セットの唯一の要素にアクセスする [重複] 質問する

セットの唯一の要素にアクセスする [重複] 質問する

Pythonsetで、条件に基づいて要素を 1 つずつ削除しています。セットに要素が 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

ベストアンサー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])
>>> 

おすすめ記事