Python でセットに値を追加する

Muhammad Maisam Abbas 2023年6月21日
  1. Python で Set.add() 関数を使用してセットに単一の値のみを追加する
  2. Python で Set.update() 関数を使用して複数の値をセットに追加する
Python でセットに値を追加する

このチュートリアルでは、Python で値をセットに追加するために使用できる方法について説明します。

Python で Set.add() 関数を使用してセットに単一の値のみを追加する

数学的には、セットは論理的に関連する個別のオブジェクトの集まりです。 Python では、セットは組み込みのデータ型であり、インデックスがなく、不変です。

これは、特定のインデックスを持つセット項目にアクセスでき、セット内の既存のデータを変更できないことを意味します。

Python で set クラス オブジェクトを作成することにより、セットを宣言できます。 組み込みの add() メソッドを使用して、新しく作成したセットに値を追加できます。

次のコード スニペットは、Python で add() メソッドを使用してセットに値を追加する方法を示しています。

myset = set()
myset.add(14)
myset.add(14)
myset.add(15)
print(myset)

出力:

{14, 15}

上記の出力は、前述されていないセットの別のプロパティを示しています。 セットには個別の値のみが含まれるため、セット内に重複する値を含めることはできません。

add() メソッドの唯一の欠点は、セットに単一の値しか追加できないことです。

Python で Set.update() 関数を使用して複数の値をセットに追加する

add() メソッドは正常に機能しますが、1つの入力しか必要としないため、1つのセット内に何千もの値を追加したい場合、タスクが非常に面倒になります。 このような状況では、一度に複数の値をセットに追加できる組み込みの update() メソッド を利用できます。

update() メソッドは反復可能なオブジェクトを入力として取り、それを反復処理して、各アイテムをセットに追加します。 iterable は常にリストである必要はありません。

次のコード スニペットは、Python で update() メソッドを使用して複数の値をセットに追加する方法を示しています。

myset.update([1110, 3, 4])
print(myset)

出力:

{1, 3, 4, 14, 15, 1110}

Python の update() メソッドを使用して、前の例のセットに新しい値を追加しました。

時間の節約という点では明らかな勝者ですが、update() メソッドには欠点があります。 たとえば、文字列をセットに追加する場合、update() 関数は文字列全体を反復処理し、以下のコード例に示すように、一意の文字をセットに追加します。

myset.update("this is my value")
print(myset)

出力:

{1, 3, 4, 's', 'm', 'a', 'h', 14, 15, 'l', 'y', 'u', 'e', 1110, 'v', 't', ' ', 'i'}

これは、文字列が Python の反復可能なオブジェクトであるためです。 この問題を解決するには、文字列を別の iterable (リストやセットなど) で囲む必要があります。

この手順を次のコード例に示します。

myset.update(["this is my value"])
print(myset)

出力:

{1, 3, 4, 'm', 14, 15, 'i', 's', 'l', 'y', ' ', 'u', 'h', 1110, 'v', 'this is my value', 't', 'a', 'e'}

今回は、各文字ではなく文字列全体がセット内に追加されます。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Python Set