Skip to Content
Effective Python 第3版 ―Pythonプログラムを改良する125項目
book

Effective Python 第3版 ―Pythonプログラムを改良する125項目

by Brett Slatkin, 鈴木 駿
October 2025
Intermediate to advanced
572 pages
7h 46m
Japanese
O'Reilly Japan, Inc.
Content preview from Effective Python 第3版 ―Pythonプログラムを改良する125項目

12章データ構造とアルゴリズム

ある程度のデータ量を扱うPythonプログラムを実装する際、アルゴリズム的な複雑さがボトルネックになりがちです。例えば、処理時間が入力データの線型に比例すると期待していたプログラムが、本番環境では入力データの二乗に比例してしまいトラブルになるケースがあります。Pythonには標準的なデータ構造やアルゴリズムの最適化された実装が含まれているので、最小限の労力で高パフォーマンスを実現できます。

また、Pythonには豊富な標準ライブラリが用意されているので、頻繁に発生する一般的なタスクを簡単に処理できます。例えば日付や時刻の計算、タイムゾーン操作、丸め処理、そしてソフトウェアが進化してもユーザのプログラム状態を保存・復元するタスクなどがあります。このような状況を正確に処理するコードを書くのは困難ですが、実績ある実装がPythonの標準ライブラリとして用意されているのは非常に心強いです。

項目100 keyパラメータによる複雑なソート

組み込みのlistには要素を並べ替えるsort()メソッドが用意されています。sort()メソッドとsorted()関数を混同しないように注意してください([項目101]参照)。sort()はデフォルトで要素を自然な昇順でソートします。例えば、以下のコードは整数のリストnumbersを昇順にソートするものです。

numbers = [93, 86, 11, 68, 70]
numbers.sort()
print(numbers)  # [11, 68, 70, 86, 93]

sort()メソッドは、整数に限らず文字列や浮動小数点数など自然な順序を持つ型ならばソート可能です。オブジェクトに対してsort()はどう動作するのでしょうか。例として、建設現場で使う道具を表す ...

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

Think Python 第3版 ―コンピュータ科学者の思考で問題を解決する

Think Python 第3版 ―コンピュータ科学者の思考で問題を解決する

Allen B. Downey, 大橋 真也
入門 Python 3 第2版

入門 Python 3 第2版

Bill Lubanovic, 鈴木 駿, 長尾 高弘

Publisher Resources

ISBN: 9784814401338Publisher Website