競技プログラミングをやっていて、ふと「どちらも削除するものだけど、この2つの違いってなんだ?」と思い調べてみました。結論としては、取り除くものがそもそも存在しないときエラーを返すかどうかです。 removeとdiscardの共通事項 集合から要素を削除するメソッド。 複数指定はできない。 要素を指定しない場合、エラーが出る。 removeとdiscardの違い S = {one, two, three} S.remove() #エラー:remove() takes exactly one argument (0 given) S.discard() #エラー:discard() takes exactly one argument (0 given) S.remove('four') #KeyError: 'four' S.discard('four') #エラーは出ない 先述の通り、要素