Python入門トップページ


目次

  1. プログラミング言語
  2. Anaconda - Jupyter Notebook / JupyterLab の環境設定
  3. Python の基礎
  4. リスト,タプル,辞書,集合
    1. リスト
    2. タプル
    3. 辞書
    4. 集合
  5. 再び Jupyter Notebook の操作
  6. Python の制御構文
  7. 関数
  8. 便利な関数など
  9. リストの内包表記
  10. 多次元リスト
  11. クラス
  12. 演習問題
  13. 雑多な情報

Python の基礎

リスト,タプル,辞書,集合

集合

集合 (set) は辞書のキーだけを取り出したリストのようなものです.リストとの最も大きな違いは同じ要素を複数持てないことです.

集合の生成

集合を生成するには複数の要素をコンマで区切って全体を { } で囲います.次の例では有名な小説(源氏物語(紫式部),坊っちゃん(夏目漱石),走れメロス(太宰治),羅生門(芥川龍之介))の集合を生成します.なお,集合の要素に順序はないことにも注意してください.

novels = {"genji", "bocchan", "meros", "rashomon"}
print(novels)
{'bocchan', 'genji', 'meros', 'rashomon'}

オブジェクトの型を確認しておきます.

type(novels)
set

また,set() を使って集合を生成することもできます.このとき,引数を与えなければ空の集合が生成されます.

empty_names = set()
print(empty_names)
set()

これについてもオブジェクトの型を確認します.

type(empty_names)
set

目次に戻る

リストから集合への変換

リストから set() によって集合に変換することもできます.このとき,リストでは同じ要素を複数持つことができますが,集合ではできないことに注意が必要です.つまり,リストから重複を除いた集合を生成することが可能です.例えば,次のように 'Watanabe' が3回登場するリスト all_names から集合 names を生成すると,重複を除いた集合を生成できます.

all_names = ['Tanaka', 'Sato', 'Watanabe', 'Takahashi', 'Watanabe', 'Watabe', 'Tanabe', 'Watanabe']
names = set(all_names)
print(names)
{'Tanaka', 'Tanabe', 'Watabe', 'Sato', 'Takahashi', 'Watanabe'}

このとき,sorted() でソートすることで並べ替えた集合を得ることもできます.何れにせよ,'Watanabe' の重複が除かれていることに注意してください.

all_names = ['Tanaka', 'Sato', 'Watanabe', 'Takahashi', 'Watanabe', 'Watabe', 'Tanabe', 'Watanabe']
names = sorted(set(all_names))
print(names)
['Sato', 'Takahashi', 'Tanabe', 'Tanaka', 'Watabe', 'Watanabe']

目次に戻る

要素の追加

集合に要素を追加するには add() を使います.例えば novels'gakumon'(学問ノススメ(福沢諭吉))を追加します.

print(novels)
novels.add('gakumon')
print(novels)
{'bocchan', 'genji', 'meros', 'rashomon'}
{'bocchan', 'genji', 'meros', 'rashomon', 'gakumon'}

すでにある要素 'genji' を add しても追加されませんが,エラーや警告が表示されることもありません.

novels.add('genji')
print(novels)
{'bocchan', 'genji', 'meros', 'rashomon', 'gakumon'}

目次に戻る

要素の削除

要素を削除するには remove() を使います.

novels.remove('gakumon')
print(novels)
{'bocchan', 'genji', 'meros', 'rashomon'}

目次に戻る