集合について見ていきましょう。
集合とは、順番に並んでいないデータの集まりのことを言います。
順番に並べられているデータとしては、リストやタプルがあります。これらは、インデックスを使うことによってデータを取り出すことができました。
しかし、集合はインデックスを使ってデータを取り出すことはできません。
ここから、具体的な例とともに集合についてみていきましょう。
集合の作り方
集合は、中かっこ(英語ではcurly bracesと言います)でデータを囲むことで作ることができます。
{}の中に入れるデータは、整数、浮動小数点、リスト、タプル、辞書などです。
実際に集合を作ってみましょう。
コードset1 = {1, 2, 3}
set2 = {1, 'a', ('bb', )}
print(set1)
print(set2)
{1, 2, 3}
アウトプット{}
{1, 'a', ('bb', )}
出力結果が{}で囲まれており、集合を作ることができました。
集合にミュータブルなデータを入れることはできない
ただし、集合にミュータブルなデータを入れることはできません。
実際に入れるとどうなるでしょうか。
コードset = {1, 'a', ['bb']}
print(set)
TypeError: unhashable type: 'list'
リスト方はハッシュ化できません。というエラーが出てしまいました。
ハッシュ化については、ミュータブルとイミュータブルという記事で詳しく解説していますので、ハッシュ化について理解したい方はぜひ記事を読んでみて下さい。
集合には同じデータを入れることはできない
また、集合には同じデータを入れることができません。
同じデータを入れたとしても、Pythonがコードを実行する時に重複するデータは消されてしまいます。
具体例で見ていきましょう。
コードset = {1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3}
print(set)
アウトプット{1, 2, 3}
重複しているデータが消されていることが分かります。
なぜ重複しているデータが消されてしまうのかというと、集合ではデータをハッシュとして管理するからです。
そして、同じハッシュを集合の中で複数持つことはできませんので、結果として同じデータは消えてしまうのです。
なぜ集合を使うのか
実は、集合だけを使う場面はあまり多くありません。
集合はユニークなハッシュの集まりですが、これは次に学ぶ辞書というデータで使われます。
具体的には、集合をkeyと呼び、それとvalueというデータを組み合わせることによって集合を作ることができます。
ですので、集合は辞書とセットで学ぶと良いでしょう。
集合のまとめ
(1) 一つの集合の中で同じデータを入れることはできない
(2) 集合は辞書とセットで学ぶと良い
集合を学んだ後は
集合を学んだ後は、集合と対の関係にある辞書について学びましょう。