05-Python

Python(Part.41)| python【集合(利用編-1)】

python| まとめ | 現役エンジニア&プログラミングスクール講師「python」のまとめページです。pythonに関して抑えておきたい知識や文法やにについて記事をまとめています。まとめページの下部には「おすすめの学習書籍」「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中...

目標

(pythonの)「集合」について作成方法を理解して集合を作成できる。

(pythonの)「集合」の利用方法

(pythonの)「集合」の作成方法

(pythonの)「集合」の作成方法には「 {}(集合表記演算子)を利用する方法」と「set関数(組み込み関数)を利用する方法」の2つがあります。

「 {}(集合表記演算子)を利用する方法」

集合の作成方法のひとつめは「集合表記演算子を利用する方法」です。集合表記演算子はキーボードのEnterキーの左にある []括弧 のキーをShiftキーを押しながら押下します。この記号を利用すると集合が作成できます。要素にはリテラル、または変数を利用できます。

サンプルプログラム

# 整数のみの集合の作成
set_sample_no1 = {6, 4, 8, 9, 2}
# 文字列のみの集合の作成
set_sample_no2 = {'tomato', 'onion', 'cucumber', 'carrot', 'eggplant'}
# 色々なオブジェクトを要素に持つ集合の作成
# ※イミュータブルなオブジェクトのみ利用可
set_sample_no3 = {6, 'tomato', 3.14, ('onion', 'cucumber')}

print(set_sample_no1)
print(set_sample_no2)
print(set_sample_no3)

実行結果

「 {}(集合表記演算子)を利用する場合の注意点」

「 {}(集合表記演算子)」を利用して集合を作成する場合、空の集合は作成することができません。「 {} 」はこの場合、「 {}(辞書表記演算子)」として働くため、空の辞書を作成したことになります。

サンプルプログラム(変数「something」は空の辞書です。)

something = {}

集合の空は「set関数」を利用して作成します。空集合の表記は「set()」となります。

「集合」を作成する場合の注意点」(要素の重複)

要素の重複パターン1

集合の要素は同じ値の要素を重複して持つことができないので、集合の作成時に、値が重複する場合は、その中の、ひとつのみが要素となります。

サンプルプログラム

set_sample_no4 = {1, 1, 2, 2, 2, 3, 3}
print(set_sample_no4)

実行結果

要素の重複パターン2

集合の要素が異なる型の値を持つ場合、その値が等価であれば重複として扱われます

サンプルプログラム(真偽値がTrueとなる値)

set_sample_no5 = {1, 1.0, True}
print(set_sample_no5)
set_sample_no5 = {1.0, 1, True}
print(set_sample_no5)
set_sample_no5 = {True, 1, 1.0}
print(set_sample_no5)

実行結果

サンプルプログラム(真偽値がFalseとなる値)

set_sample_no6 = {0, 0.0, False}
print(set_sample_no6)
set_sample_no6 = {0.0, 0, False}
print(set_sample_no6)
set_sample_no6 = {False, 0, 0.0}
print(set_sample_no6)

実行結果

「集合」を作成する場合の注意点」(要素に利用できないオブジェクト)

集合の要素にはイミュータブルオブジェクトのみが利用できます。リストのようなミュータブルなオブジェクトを利用することはできません。

サンプルプログラム

set_sample_no7 = {6, 4, [8, 9, 2]}
print(set_sample_no7)

実行結果

要素に変数を利用しての作成

要素には変数を利用することができます。

set_value_no1 = 'tomato'
set_value_no2 = 'onion'
set_value_no3 = 'cucumber' 
set_value_no4 = 'carrot'
set_value_no5 = 'eggplant'

set_sample_no8 = {
                  set_value_no1,
                  set_value_no2,
                  set_value_no3,
                  set_value_no4,
                  set_value_no5
                  }

print(set_sample_no8)

実行結果

「set関数(組み込み関数)を利用する方法」

集合の作成方法のふたつめは、set関数(組み込み関数)を利用する方法です。set関数を利用する場合、次のように記述します。

set()…空の集合を作成します。
set([9, 11, 8.7, ‘abc’, 5j])…()の中にはイテラブルオブジェクトが必要です。

# 空の集合を作成
set_sample_no1 = set()

# set関数では引数にイテラブルオブジェクトを指定して集合を作成します。
# 要素に重複がある場合、集合では重複は無視されます。
set_sample_no2 = set([6, 4, 2, 9, 2])

# 文字列から集合を作成すると文字列の一文字ずつが要素となります。
set_sample_no3 = set('あいうえお')

# 辞書から集合を作成(辞書のキーが集合の要素となります。)
set_sample_no4 = set({
    'tomato'  :[150, 50],
    'onion'   :[100, 45],
    'cucumber':[45, 34],
    'carrot'  :['null','null'],
    'eggplant':[98, 67],
    'potato'  :[68, 101]
    }
)

print(set_sample_no1)
print(set_sample_no2)
print(set_sample_no3)
print(set_sample_no4)

実行結果

set()関数を利用すると「文字列」「リスト」「タプル」「辞書(この場合はキーから)」から集合を作成できます。※重複する値を簡単に削除できるメリットもあります。

list_sample = [3, 5, 7, 3, 2, 1, 6, 4, 4, 7, 9, 8, 0 ,2]
no_duplicates_list = list(set(list_sample))
print(no_duplicates_list)

実行結果

「set関数(組み込み関数)を利用する場合の注意点」

set関数では、引数にイテラブルオブジェクトを指定します。指定しない場合は空の集合を作成できます。

引数にイテラブルオブジェクト以外を指定すると「TypeError」となります。

set_sample_no5 = set(1, 1, 2, 2, 2, 3, 3)
print(set_sample_no5)

実行結果

set関数の引数にリストやタプルを利用すると中身の要素をひとつづつ集合の要素とすることができます。(重複する場合はひとつのみ要素となります。)この時、中身の要素が文字列の場合は、文字列がひとつの値として要素となります。

set関数では引数に直接、文字列を利用する場合と実行結果に違いがあります。混同しないように注意します。

set_sample_no6 = set(['tomato', 'onion', 'cucumber' , 'carrot', 'eggplant'])
print(set_sample_no6)
set_sample_no7 = set('tomato')
print(set_sample_no7)

実行結果
※引数に文字列を利用した場合、ひと文字ごと要素となります。
※重複した文字は無視されます。

「type関数(組み込み関数)を利用した型の確認」

作成した集合のオブジェクトはset型です。組み込み関数のtype関数を利用すると、型の確認が可能です。set型の場合は「<class ‘set’>」と表示されます。

set_sample_no8 = set()
print(type(set_sample_no8))

実行結果

今回は以上になります。

「python」おすすめ書籍 ベスト3 | 現役エンジニア&プログラミングスクール講師「python」の学習でお勧めしたい書籍をご紹介しています。お勧めする理由としては、考え方、イメージなどを適切に捉えていること、「生のpython」に焦点をあてて解説をしている書籍であることなどが理由です。勿論、この他にも良い書籍はありますが、特に質の高かったものを選んで記事にしています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
05-Python

Python(Part.24)| python【反復構造(for-else文)】| [Iterative Structures(for-else statement)]

2024年7月1日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site