Upgrade to Pro — share decks privately, control downloads, hide ads and more …

君はcollectionsモジュールを知っているか

ksnt
July 31, 2019
250

 君はcollectionsモジュールを知っているか

ksnt

July 31, 2019
Tweet

Transcript

  1. 君ははcollectionsモジュールをを
    知っているかっているか
    By ksnt
    便利な!な!

    View Slide

  2. 概要
    前半: collectionsモジュールをの概要と使い方概要と使い方使い方い方
    を紹介
    後半: 実際に使ってみて便に使ってみて便利使い方ってみて便利な!だったユースユース
    ケースの概要と使い方紹介

    View Slide

  3. 前半: collectcollectionsモジュールをの概要と使い方概要と使い方使い方い方
    を紹介
    後半: 実際に使ってみて便に使ってみて便利使い方ってみて便利な!だったユースユース
    ケースの概要と使い方紹介

    View Slide

  4. collectionsモジュールをの概要と使い方概要
    「汎用の の概要と使い方 Python 組み込みコンテナみ込みコンテナ みコンテナ dict, list, set,
    および tuple に使ってみて便利代わる、特殊なコわる、特殊なコンテナ特殊なコンテナデーなコンテナデータ型型
    を実装」 (公式ドキュメントよドキュメントよりより)

    View Slide

  5. namedtuple()
    名前付きタプル。場所きタプル。場所にタ型プルを。場所に対するイ場所に対するインデに使ってみて便利対するインデックするインデックスの概要と使い方代わる、特殊なコわりに使ってみて便利名
    前を使い方ってフィールをドに使ってみて便利アクセスできタプル。場所にるように使ってみて便利なる。場所に対するイ

    View Slide

  6. deque
    ● スタ型ックと使い方キューを一般化したしたユースDeque(両端キューキュー)の概要と使い方実
    装。場所に対するイDeque はどちらの概要と使い方側からも からも append と使い方 pop が可能で、ス可能で、スで、特殊なコンテナス
    レッドセーフでメモリ効率がよく、ど効率がよく、どちらが可能で、スよく、特殊なコンテナどちらの概要と使い方方向からもおよそ からもおよそ
    O(1) の概要と使い方パフォーマンスで実行できるできタプル。場所にる

    Pythonではキュー(FIFO)はQueueモジュールをで実装されている
    ● スタ型ック(LIFO)ははlistを使い方えばよい

    View Slide

  7. ChainMap
    複数の辞書やその他の概要と使い方辞書やその他の複数やその概要と使い方他の複数のマッピの概要と使い方複数の辞書やその他の概要と使い方マッピングを連結する。新を連結する。新しい辞する。場所に対するイ新しい辞書をしい辞書やその他の複数を
    作成してしてupdate()を繰り返すより早いり返すより早いすより早いい
    注)はよく見てみると中身はてみると使い方中身は違うっぽい?は違うっぽい?うっぽい?
    >>> ChainMap(adjustments,baseline)
    ChainMap({'art': 'van gogh', 'opera': 'charmen'}, {'music': 'bach', 'art': 'rembrant'})
    >>> combined
    {'music': 'bach', 'art': 'van gogh', 'opera': 'charmen'}

    View Slide

  8. Counter
    要素を辞書のキーとを辞書やその他の複数の概要と使い方キーと使い方して保存してそのカウンしてその概要と使い方カウントよりを辞書やその他の複数の概要と使い方値
    と使い方して保存してそのカウンするコレクション
    >>> Counter("This is a pen.")
    Counter({' ': 3, 'i': 2, 's': 2, 'T': 1, 'h': 1, 'a': 1, 'p': 1, 'e': 1, 'n': 1, '.': 1})

    View Slide

  9. OrderedDict
    普通の辞書に加えての概要と使い方辞書やその他の複数に使ってみて便利加えて順序操作にえて順序操作に使ってみて便利関する追加の機能する追加えて順序操作にの概要と使い方機能で、スが可能で、スある。場所に対するイたユースだし、特殊なコンテナ 組み込みコンテナみ込みコンテナ みの概要と使い方 dict
    クラスが可能で、ス挿入順序を記憶しておく機能 しておく機能で、ス (この概要と使い方新しい辞書をしい振る舞いは る舞いは いは Python 3.7 で保証されされ
    るように使ってみて便利なりましたユース) を獲得した今となってしたユース今となっては、順と使い方なっては、特殊なコンテナ順序付きタプル。場所きタプル。場所に辞書やその他の複数の概要と使い方重要性は薄れた。は薄れた。れたユース。場所に対するイ
    >>> od = OrderedDict({'a':1,'b':2,'c':3})
    >>> list(reversed(od.keys()))
    ['c', 'b', 'a']
    >>> list(reversed(od.values()))
    [3, 2, 1]
    >>> d = dict({'a':1,'b':2,'c':3})
    >>> d
    {'a': 1, 'b': 2, 'c': 3}
    >>> d.values()
    dict_values([1, 2, 3])
    >>> d.values()[::-1]
    Traceback (most recent call last):
    File "", line 1, in
    TypeError: 'dict_values' object is not subscriptable

    View Slide

  10. defaultdict

    dict の概要と使い方初期化したを関する追加の機能数の辞書やその他に使ってみて便利したユースが可能で、スって実施する事がする事がが可能で、ス
    できタプル。場所にる。場所に対するイキーの概要と使い方存してそのカウン在確認の必要がない。の概要と使い方必要が可能で、スない。場所に対するイ(下記)
    (1) collectdictionaryを使い方ったユース場合
    >>> s = "This is a pen."
    >>> d = {}
    >>> for key in s:
    ... d[key] += 1
    ...
    Traceback (most recent call last):
    File "", line 2, in
    KeyError: 'T'
    (2) collectdefaultdictを使い方ったユース場合
    >>> s = "This is a pen."
    >>> d = defaultdict(int)
    >>> for key in s:
    ... d[key] += 1
    ...
    >>> print(d)
    defaultdict(, {'T': 1, 'h':
    1, 'i': 2, 's': 2, ' ': 3, 'a': 1, 'p': 1, 'e':
    1, 'n': 1, '.': 1})

    View Slide

  11. defaultdictの概要と使い方使い方い方

    View Slide

  12. UserDict
    辞書やその他の複数オブジェクトよりの概要と使い方ラッパと使い方してはたユースらく。場所に対するイ
    注) この概要と使い方クラスの概要と使い方必要性は薄れた。は、特殊なコンテナ dict から直接的にサブクラスに使ってみて便利サブクラス
    化したできタプル。場所にる能で、ス力に部分的に取っに使ってみて便利部分的にサブクラスに使ってみて便利取って代わられたって代わる、特殊なコわられたユース; しかし、特殊なコンテナ根底
    の概要と使い方辞書やその他の複数に使ってみて便利属性は薄れた。と使い方してアクセスできタプル。場所にるの概要と使い方で、特殊なコンテナこの概要と使い方クラスを
    使い方ったユース方が可能で、ス簡単になることもあに使ってみて便利なること使い方もある。場所に対するイ

    View Slide

  13. UserList
    この概要と使い方クラスはリ効率がよく、どストよりオブジェクトよりの概要と使い方ラッパと使い方してはたユースらく。場所に対するイこれは独自のリの概要と使い方リ効率がよく、ど
    ストより風クラスの基底ククラスの概要と使い方基底クラスと使い方して便利な!で、特殊なコンテナ既存してそのカウンの概要と使い方メソッドをオーバーライド
    したユースり新しい辞書をしいメソッドを加えて順序操作にえたユースりできタプル。場所にる。場所に対するイこうして、特殊なコンテナリ効率がよく、どストよりに使ってみて便利新しい辞書をしい振る舞いは る舞いは
    いを加えて順序操作にえられる。場所に対するイ
    注) この概要と使い方クラスの概要と使い方必要性は薄れた。は、特殊なコンテナ list から直接的にサブクラスに使ってみて便利サブクラス化したできタプル。場所にる能で、ス力に部分的に取っに使ってみて便利部分
    的にサブクラスに使ってみて便利取って代わられたって代わる、特殊なコわられたユース; しかし、特殊なコンテナ根底の概要と使い方リ効率がよく、どストよりに使ってみて便利属性は薄れた。と使い方してアクセスできタプル。場所にるの概要と使い方
    で、特殊なコンテナこの概要と使い方クラスを使い方ったユース方が可能で、ス簡単になることもあに使ってみて便利なること使い方もある。場所に対するイ

    View Slide

  14. UserString
    文字列オブジェクトのオブジェクトよりの概要と使い方ラッパと使い方してはたユースらく。場所に対するイ
    注) この概要と使い方クラスの概要と使い方必要性は薄れた。は、特殊なコンテナ str から直接的にサブクラスに使ってみて便利サブクラス
    化したできタプル。場所にる能で、ス力に部分的に取っに使ってみて便利部分的にサブクラスに使ってみて便利取って代わられたって代わる、特殊なコわられたユース; しかし、特殊なコンテナ根底
    の概要と使い方文字列オブジェクトのに使ってみて便利属性は薄れた。と使い方してアクセスできタプル。場所にるの概要と使い方で、特殊なコンテナこの概要と使い方クラスを
    使い方ったユース方が可能で、ス簡単になることもあに使ってみて便利なること使い方もある。場所に対するイ

    View Slide

  15. 前半: collectionsモジュールをの概要と使い方概要と使い方使い方い方
    を紹介
    後半: collect実際に使ってみて便に使ってみて便利使い方ってみて便利な!だったユースユース
    ケースの概要と使い方紹介

    View Slide

  16. Given a string, sort it in decreasing order based on the frequency of characters.
    Example2:
    Example 1: Example3:
    1. Counterを使い方ってきタプル。場所にれいなコードが可能で、ス書やその他の複数ける

    View Slide

  17. 2. defaultdictを使い方って簡単になることもあな集計ができるが可能で、スできタプル。場所にる(1)
    この概要と使い方データ型セットよりに使ってみて便利対するインデックして’star_rating’の概要と使い方値ごと使い方の概要と使い方商品数の辞書やその他を知っているかりたユースい

    View Slide

  18. 2. defaultdictを使い方って簡単になることもあな集計ができるが可能で、スできタプル。場所にる(2)
    star_ratingの概要と使い方種類が前もって分かが可能で、ス前もって分かって
    いれば普通の辞書に加えての概要と使い方dictを使い方ってカウントよりで
    きタプル。場所にる
    defaultdictを使い方えば前もってキーの概要と使い方
    値を指定する必要がないする必要が可能で、スない

    View Slide

  19. まと使い方め

    collectionsモジュールをを使い方うと使い方dict, list, set, および tuple
    を拡張した機能を使うしたユース機能で、スを使い方うこと使い方が可能で、ス出来、特殊なコンテナ便利な!なこと使い方が可能で、スある。場所に対するイ
    ● 実際に使ってみて便に使ってみて便利便利な!に使ってみて便利使い方えたユース(と使い方思ってもらえるかってもらえるかもしれない)は
    場面を見てもらったを見てみると中身はてもらったユース

    View Slide