Pythonの組み込み型

文字列とバイト列

 

文字列の連結

 

リストの内包表記

下記のコードだと、C言語では問題なさそうだが、Pythonでは3つの問題がある。
・リストを操作するコードをループごとにインタープリタ上で処理する必要になる
・カウンタの操作もループごとにインタープリタ上で処理する必要になる
・append()はリストのメソッドであるため、
イテレーションごとに関数ルックアップの追加のコストが必要になる

下記のコードだと、処理の一部がインタープリタ内部で実行され、処理が早くなる。

 

辞書の弱点と対応策

辞書はキーの順序を保持しない(python3.6前後で挙動が違うらしい)。
必ず、下記の実行結果になるとは限らないので、
順序を保持するなら、OrderedDictを利用する。

 

Pythonの高度な文法

イテレータ, ジェネレータ, デコレータ, コンテキストマネージャについて

イテレータについて

イテレータはイテレータプロトコルを実装したコンテナオブジェクト
イテレータプロトコルは、下記2つのメソッドを持つ
・コンテナの次の要素を返す__next__()メソッド
・イテレータ自身を返す__iter__()メソッド

 

ジェネレータについて

ジェネレータは反復可能なオブジェクト
イテレータ同様forなどでループ処理を行うことができ、
その都度必要な分だけ値を生成させることができるため、
メモリを効率的に使用することができる。

 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です