Python関連記事まとめ
目次
スポンサーリンク
環境情報
- Pythonのバージョンを確認、表示(sys.versionなど)
- 環境変数を取得・追加・上書き・削除(os.environ)
- Pythonが実行されている環境のOSやバージョン情報などを取得
- 実行中のファイルの場所(パス)を取得する
__file__
- カレントディレクトリを取得、変更(移動)
pip(パッケージ管理)
- パッケージ管理システムpipの使い方
- pipでrequirements.txtを使ってパッケージ一括インストール
- pip list / freezeでインストール済みパッケージ一覧を確認
- pip.confを作成してpip listの警告を消す
- パッケージ(ライブラリ)のバージョンを確認
基礎
- 基本的なエラー一覧とその原因の確認方法
if __name__ == '__main__'
の意味と使い方- 例外処理(try, except, else, finally)
- pass文の意味と使い方
- 型を取得・判定するtype関数, isinstance関数
- 真偽値bool型(True, False)と他の型との変換・判定
- 複数の変数に複数の値または同じ値を代入
インポート
- importの使い方(from, as, PEP8の推奨スタイル, 注意点など)
- importの対象ディレクトリのパスを確認・追加(sys.pathなど)
- 相対インポートで上位ディレクトリ・サブディレクトリを指定
コマンドライン引数
標準入力・出力
演算子
- 算術演算子(四則演算、べき乗、リスト・文字列の結合など)
- 論理演算子(論理積、論理和、否定)
- ビット演算子(論理積、論理和、排他的論理和、反転、シフト)
- 複数の比較演算子を連結して記述(a < x < bなど)
関数
- 関数を定義・呼び出し(def, return)
- 可変長引数(
*args
,**kwargs
)の使い方 - デフォルト引数の使い方と注意点
- 引数にリスト、タプル、辞書を展開して渡す方法
- 複数の戻り値を返す方法
- lambda(ラムダ式、無名関数)の使い方
forループ・whileループ
- for文によるループ処理(range, enumerate, zipなど)
- enumerateとzipを組み合わせて同時に使う
- 多重ループ(ネストしたforループ)からbreak
- while文によるループ処理(無限ループなど)
if文
コメント・docstring
- コメント、コメントアウトの書き方
- docstring(ドキュメンテーション文字列)の書き方
- docstringにテストコードを記述するdoctestの使い方、書き方
- 関数アノテーションと型ヒント、typingモジュール
リスト
基礎
- Pythonのリストと配列とnumpy.ndarrayの違いと使い分け
- リスト内包表記の使い方
- リストのサイズ(要素数)を取得
- in演算子でリストなどに特定の要素が含まれるか判定
- リストを任意の値・要素数で初期化
- リストとタプルを相互に変換するlist(), tuple()
要素の追加・削除
要素の抽出・置換
- スライスによるリストや文字列の部分選択・代入
- リストの特定の要素を抽出、置換、変換
- 文字列のリストの条件を満たす要素を抽出、置換
- リストの最大値・最小値から順にn個の要素を取得
- リストからランダムに要素を選択・取得
- リストの要素のインデックス(何番目か)を取得
- enumerateでリストの要素とインデックスを取得
- zipで複数のリストの要素をまとめて取得
ソート・入れ替え・並べ替え
- リストをソートするsortとsortedの違い
- リストの要素をシャッフル(random.shuffle, sample))
- リストの値を入れ替え(交換・並べ替え)
- ゼロ埋めなしの数字の文字列リストをソート
- リストや文字列を逆順に並べ替え(reverse, reversed)
- 2次元配列(リストのリスト)をソート
- 2次元配列(リストのリスト)の行と列を入れ替える(転置)
- flatten(多次元リストを一次元に平坦化)
重複・共通要素の処理
その他
- 文字列のリストと数値のリストを相互に変換
- リストの各要素の出現個数をカウントするCounter
- 複数のリストの直積(デカルト積)を生成するitertools.product
- リスト、NumPy配列、pandas.DataFrameを正規化・標準化
- Python3のmapはリストではなくイテレータを返す
タプル
辞書
- 辞書を作成するdict()と波括弧、辞書内包表記
- 辞書のforループ処理(keys, values, items)
- 辞書に要素を追加、辞書同士を連結(結合)
- 辞書にキーが存在しないときのみ要素を追加するsetdefault
- 辞書の要素を削除するclear, pop, popitem, del
- 辞書のキー・値の存在を確認、取得(検索)
- 辞書のgetメソッドでキーから値を取得(存在しないキーでもOK)
- 辞書の値の最大値・最小値とそのキーを取得
- 辞書の値からキーを抽出
- 辞書のキーと値を入れ替える
- 辞書のキー名を変更
- 複数の辞書のキーに対する集合演算(共通、和、差、対称差)
- 辞書のリストから特定のキーの値のリストを取得
- 辞書のリストを特定のキーの値に従ってソート
- 順序付き辞書OrderedDictの使い方
文字列
基礎
- 文字列生成(引用符、strコンストラクタ)
- エスケープシーケンスを無視(無効化)するraw文字列
- 文字列の長さ(文字数)を取得
- 文字列を置換(replace, translate, re.sub, re.subn)
- 文字列を分割(区切り文字、改行、正規表現、文字数)
- 文字列を検索(〜を含むか判定、位置取得、カウント)
- 文字列を比較(完全一致、部分一致、大小関係など)
- 文字列を抽出(位置・文字数、正規表現)
- 文字列を連結・結合(+演算子、joinなど)
- 改行を含む文字列の出力、連結、分割、削除、置換
- 長い文字列を複数行に分けて書く
- 大文字・小文字を操作する文字列メソッド一覧
書式変換(フォーマット)
- format関数・メソッドで書式変換(0埋め、指数表記、16進数など)
- f文字列(フォーマット済み文字列リテラル)の使い方
- 文字列・数値をゼロ埋め(ゼロパディング)
- 文字列・数値を右寄せ、中央寄せ、左寄せ
数値と変換
正規表現
Unicode
その他
- 半角1文字、全角2文字として文字数(幅)カウント
- splitでカンマ区切り文字列を分割、空白を削除しリスト化
- 文字列を折り返し・切り詰めして整形するtextwrap
- ast.literal_eval()で文字列をリストや辞書に変換
数値
- 小数・整数を四捨五入するroundとDecimal.quantize
- ランダムな小数・整数を生成するrandom, randrange, randintなど
- 割り算の商と余りを同時に取得するdivmod
- 数値の整数部と小数部を同時に取得するmath.modf
- 数値が整数か小数かを判定
- 数値の桁数、任意の桁(位)の値を取得
- 浮動小数点数floatの誤差を考慮して比較(math.isclose)
- Python3の整数int型に最大値はない(上限なし)
- 浮動小数点数float型の範囲(最大値・最小値)
- 無限大を表すinfの作成・演算・判定・比較
算数・数学
- Pythonで算数・数学の問題を解く
- 最大公約数と最小公倍数を算出・取得
- fractionsで分数(有理数)の計算
- complex型で複素数を扱う(絶対値、偏角、極座標変換など)
- set型で集合演算(和集合、積集合や部分集合の判定など)
- 階乗、順列・組み合わせを計算、生成
- 指数関数・対数関数を計算(exp, log, log10, log2)
- 三角関数を計算(sin, cos, tan, arcsin, arccos, arctan)
- 平均、中央値、最頻値、分散、標準偏差を算出
ファイル・ディレクトリ(フォルダ)
ファイルの読み込み・書き込み
- ファイルの読み込み、書き込み(作成・追記)
- 新しいディレクトリにファイルを作成・保存
- ファイル内の任意の文字列を含む行を抽出(grep的処理)
- Web上の画像などのファイルをダウンロード(個別・一括)
ディレクトリ(フォルダ)の作成
ファイル・ディレクトリ(フォルダ)の削除・移動
存在確認・サイズ・タイムスタンプ取得
パス(ファイル名・ディレクトリ名)の処理
- パス文字列からファイル名・フォルダ名・拡張子を取得、結合
- ファイル名・ディレクトリ名の一覧をリストで取得
- ファイル名の前後に文字列や連番を加えて一括変更
- 条件を満たすパスの一覧を再帰的に取得するglobの使い方
zip圧縮・解凍
pathlib
- pathlibの使い方(パスをオブジェクトとして操作・処理)
- pathlibで絶対パスと相対パスを相互変換・判定
- pathlibでファイル名・拡張子・親ディレクトリを取得
- pathlibでファイルの作成・open・読み書き・削除
- pathlibでファイル一覧を取得(glob, iterdir)
日付・時間
- datetimeで日付や時間と文字列を変換(strftime, strptime)
- datetime, pytzでタイムゾーンを設定・取得・変換・削除
- ISO 8601形式の文字列と日時datetimeを相互変換
- UNIX時間(エポック秒)と日時datetimeを相互変換
- 現在時刻・日付・日時を取得
- 経過時間や日時(日付・時刻)の差分を測定・算出
- 秒数と分・時間・日数を相互に変換
- 日付から曜日や月を文字列(日本語や英語など)で取得
URL
CSV・Excel・JSON・PDF
CSV
Excel
JSON
画像処理基礎
Web APIの例
- Pythonでe-Stat APIを使って政府統計データを一括ダウンロード
- PythonでRESAS APIを使ってデータをダウンロード
- Google Analytics APIでページ別・日別のPV・AdSense収益などを取得
- Search Console APIで検索クエリ別・日別の検索順位・クリック数を取得
そのほかの組み込み関数
そのほかのモジュール
スポンサーリンク