libro
www.tuyano.com
初心者のためのPython入門

リスト・タプル・レンジ・セット・辞書 (6/8)

作成:2017-06-03 12:31
更新:2017-06-03 12:31

■集合を扱う「セット」

ここまでのリスト、タプル、レンジは、すべてシーケンスと呼ばれるものでした。すなわち、インデクス番号を使って値に通し番号を割り振り、順序よく整理するコンテナでした。
  
が、Pythonには、「値を順序よく整理しないコンテナ」というのもあります。その1つが「セット」です。
  
セットは、集合のコンテナです。セットは、値を順番に整理しません。セットの中には、同じ値は複数持てません。保管されている値と同じ値は、セットの中には存在しないのです。
  
このセットは、{}記号を付けて作成します。
 変数 = { 値1, 値2, ……} 

あるいは、set関数を使って作ることもできます。引数にはリストなどのコンテナを用意します。
 変数 = set( [値1, 値2, ……] ) 

これでセットが作成できます。ただし! インデクスはないので、ここから必要な値を取り出したりはできません。じゃあ、何のためにあるのか、って? セットは集合です。ですから、「この値は、この集合に含まれているか」をチェックしたりして使うものなのです。

■セットの操作

セットにも、セットを操作するための機能がいろいろと用意されています。ただし、注意しないといけないのは、「セットは値の順番がない」という点。これを忘れずにいましょう。
  
  
・値を追加する
 セット . add( 値 ) 
値の追加は、「add」というものを使います。これで、()内の値がセットに追加されます。ただし、既にセットに同じ値があった場合は何も変わりません。
  
  
・値を削除する
 セット . remove( 値 )
値の削除は、removeを使います。これは、セットなどと同じですね。これで()内の値がセットから削除されます。
  
  
・要素の数を得る
 変数 = len( セット ) 
そのセットにいくつの値が保管されているかを整数で返します。これは既に登場しましたね。
  
  
・最大値、最小値を得る
 変数 = max( セット ) 
変数 = min( セット )
セットに保管されている値の中から最大のもの、最小のものを調べて返します。これらもシーケンスで使いました。
  
  
・セットの引き算
 セット1 - セット2 
セットには、足し算や掛け算はありませんが、引き算はあります。これで、セット1からセット2の要素を取り除いた残りが新たなセットとして得られます。
  
  
・セットの比較演算
 セット1 == セット2  など 
セットは、比較演算ができます。=<>といった記号類を使った比較の式が使って、2つのセットを比べられます。ただし、<>は、「どっちのセットが大きい」という意味ではありません。これらは、「どちらかにどちらかが含まれているか」を表します。例えば、A > Bとすると、「Aのセットに、Bのセットが含まれているか」を表します。
  
  
・セットの論理演算
 セット1 & セット2 
セット1 | セット2
セット1 ^ セット2
この論理演算というのが、集合であるセット特有のものでしょう。これらは、2つのセット(集合)を演算して新たなセットを作成するものです。これは、以下の演算子を使って式を組み立てます。
  
&――2つのセットに共通する要素だけを持つセットを生成する(論理積)
|――2つのセットにある要素すべてを持ったセットを生成する(論理和)
^――2つのセットのどちらか一方にのみある要素からなるセットを生成する(排他的論理和)


最後の論理演算は、ちょっとわかりにくいかも知れません。実際の利用例を挙げておくので試してみましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

a = {'a', 'b'} 
b = {'b', 'c'} 
c1 = a & b 
c2 = a | b 
c3 = a ^ b 
print(c1) 
print(c2) 
print(c3) 

※関連コンテンツ

「初心者のためのPython入門」に戻る