Skip to Content
ハイパフォーマンスPython 第2版
book

ハイパフォーマンスPython 第2版

by Micha Gorelick, Ian Ozsvald, 中山 光樹
April 2023
Intermediate to advanced
452 pages
7h 21m
Japanese
O'Reilly Japan, Inc.
Content preview from ハイパフォーマンスPython 第2版

4章辞書と集合

4章を読めば以下の問いに答えられるようになる
  • 辞書と集合の長所は?
  • 辞書と集合の共通点は?
  • 辞書を使うときのオーバーヘッドは?
  • 辞書の性能を向上させる方法は?
  • Pythonが名前空間を管理するためにどのように辞書を使っているか?

 辞書(dict)と集合(set)は、データに固有の順序(挿入順序を除く)がなく、参照可能なユニークなオブジェクトがある場合に最適なデータ構造です。参照に用いるオブジェクトを「キー(key)」といい、データを「値(value)」といいます。キーには文字列がよく使われますが、ハッシュ可能なデータ型であれば何でも使えます。辞書と集合はほとんど同じものですが、集合には値がなく、ユニークなキーの集まりだけがあります。名前が示すとおり、集合型は、集合演算に非常に便利です。

興味深い事柄に関する補足
ハッシュ可能な型とは、関数__hash__と、__eq____cmp__のいずれかを実装したものです。Pythonの組み込み型には、これらが実装済みであり、ユーザー定義のクラスにもデフォルトの値があります。詳細は「4.1.4 ハッシュ関数とエントロピー」を参照してください。

 前章で説明したように、固有の順序がないリストやタプルを探索する計算量はO(n)であり、ソートされていれば最良でO(log n)でした。一方、辞書と集合では任意のインデックスに対する探索の計算量はO(1)で済みます。さらに、リストやタプルと同様に、辞書と集合はO(1)の挿入時間で済みます†1。「 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

ハイパフォーマンスPython

ハイパフォーマンスPython

Micha Gorelick, Ian Ozsvald, 相川 愛三
Rクックブック 第2版

Rクックブック 第2版

J.D. Long, Paul Teetor, 大橋 真也, 木下 哲也
Node.jsデザインパターン 第2版

Node.jsデザインパターン 第2版

Mario Casciaro, Luciano Mammino, 武舎 広幸, 阿部 和也
PythonによるWebスクレイピング 第2版

PythonによるWebスクレイピング 第2版

Ryan Mitchell, 黒川 利明, 嶋田 健志

Publisher Resources

ISBN: 9784873119908Other