【Python】コンテナの型を一覧でスッキリ整理してみる

Programming

PyQでPythonのコンテナについて一通り勉強しました。
ただバカなので何が何だかごちゃごちゃになったり、どのメソッドを使うんだかわからなくなりそうだったんで今一度整理してみます。

Pythonにおけるコンテナとは

複数のオブジェクトを中に突っ込めるデータ構造ですね。文字列(str)、リスト(list)、タプル(tuple)、セット(set)、フローズンセット(frozenset)、辞書(dict)の総称です。

文字列(str)

Pythonだと文字列がシーケンス扱いなんですね〜。めっちゃ便利です。

リスト(list)

まあ、配列です。順序があります。リテラルは[item,item,・・・]

追加

appendを使います。

削除

要素を指定した削除は3つ方法があり、


del list[start:stop:step](スライスしたリスト)

list.pop(index)

list.remove(item)

です。
全要素削除は

list.clear()

です。

タプル(tuple)

要素の変更ができない配列です。ちなみに後から変更できないことをイミュータブルというらしい。リテラルは(item,item,・・・)
Swiftにもありますね、これ。より安全にデータを扱いたいときに使うんでしょうか。
もちろんイミュータブルなので生成後の追加・削除・更新などは全てできません。

セット(set)

重複なし、順序なしです。集合ですね。リテラルは{item,item,・・・ }

追加

addを使います。注意点として、addメソッドで追加できるのは数値・文字列・タプルのようなイミュータブルなオブジェクトだけです。

削除

要素を指定した削除は

set1.remove(item)
set1.discard(item)

removeの場合は指定した要素が存在しないとエラーになるのでうまく使い分けよう。

pop()はいずれかの要素1つを削除し、削除した要素を返り値として返します。いまいち使いどころがわからん。

clear()は全要素削除です。

集合演算


AとBの和集合は{A} | {B}
積集合は          {A} & {B}
差集合は          {A} – {B}
集合差は          {A} ^ {B}

集合判定

部分集合の判定は >= もしくは<=を使います。 {A} >= {B}でBはAの部分集合です。

フローズンセット(frozenset)

イミュータブルなsetです。

辞書(dict)

キーと値をペアとして持つ配列。JavaScriptでいうと連想配列とかオブジェクトみたいな感じかな。Swiftにはそもそも辞書型ありますね。
リテラルは{‘key1′:’value1′,’key2′:’value2’,・・・}

コメント

タイトルとURLをコピーしました