Pythonのプログラマーとして本当に素晴らしいことを実現する､ Python特有のもの､ それは「内包」と呼ばれるものについてお話ししましょう｡
私たちの重要なキーワードの一つです｡
理解すること｡
どんなものですか？
実際には､ リスト理解､ セット理解､ 辞書理解などと呼ばれていますね｡
そして､ これらはPythonにあるいくつかのデータ型です｡
そして､ この3つのデータ型に対して､ 内包を使えるようにしたのです｡
ちなみに､ 録音している最中､ バックで鳥の鳴き声が聞こえます｡
鳥のさえずりをバックに録音するだけでもいいなと思ったんです｡
イライラしたら平和になると思うんですけどね｡
申し訳ないけど､ ちょっと､ 鳥も楽しまないとね｡
なるほど､ ではこの理解力もどうなのでしょうか｡
Pythonでリストやセットや辞書を作るのに､ ループやリストへの項目の追加をする代わりに､
手っ取り早い方法なんだ｡
そこで､ 私のリストが空のリストに等しいというようなことをする代わりに､ ここから4文字とこんにちはというようなことをすることをお見せします｡
マイリストドットアペンド
キャラクター
ただ､ 最終的にこのリストを作成することができます｡
では､ マイリストと言うことで､ これをプリントアウトしてみましょう｡
実行」をクリックすると
Helloのキャラクターを含むリストを作りました｡
わかった､ でも｡
もっと早く､ きれいな方法はないのでしょうか？
そして､ Pythonのリスト内包もそうです｡
今回もかなりユニークです｡
多くのプログラミング言語では見られませんが､ Pythonを使っている人はこの機能をとても気に入っています｡
そして､ 私もそうです｡
では､ どうすればいいのか｡
一覧性のあるものを使うこと｡
さて､ これから行うフォーマットはこんな感じです｡
パラブということにしています｡
のために｡
イテラブルのParam｡
つまり､ paramといえばパラメータ､ 私たちの場合は変数なので､ 好きな名前をつけることができるのです｡
では､ このキャラクターにここでやったような名前をつけて､ ここでやったようなキャラクターをつけましょう｡
そして､ イテラブルを求める｡
私たちの場合は､ 「こんにちは」｡
これを削除して､ 「実行」をクリックすると､ そのようになります｡
ちょうど同じようなことが起こるんです｡
そこで､ 3行目の作成時に､ characterとhelloを含むリストを作成します｡
ここで4つのループを作り､ リストを作成します｡
つまり､ 変数を作って､ イテレート可能な変数がリストに追加されるたびに､
ループを回すという方法です｡
なるほど｡
これを発展させましょう｡
他にやりたいことがあったとします｡
これもマイリストと呼ぼう｡
そして､ 例えば､ 0から100まで､ あるいは0から99までの数字のクイックリストを作りたいのです｡
どうすればいいのでしょうか？
ここでもリスト理解力を駆使｡
4番と言います｡
それから､ 私が使うルールは何でしょうか？
では､ 0から100の範囲で､ ここをクリックすると実行されるようにします｡
あれを見てください｡
これらの数字があらかじめ入力された長いリストが表示されるんだ｡
なんてかっこいいんでしょう｡
なるほど｡
しかし､ ここで私からの挑戦状です｡
もし､ 私がこれを欲しいと思ったら？
しかし､ すべての数字が2倍になっているはずです｡
だから､ これがゼロに等しいところをリストアップしたいのです｡
これは2つです｡
これは4つです｡
これは6つです｡
これが8本｡
これは10です｡
などなど｡
どうすればいいのでしょうか？
さて､ これを発展させて､ 今回のリスト3は､ 以前見たのと同じ4つのループを使うことにします｡
こんな感じ｡
しかし､ これは単なる変数ではなく､ 各文字に対してどのように作用させたいかを表現したものです｡
ラムダ式で見たのと同じように｡
だから､ 私は今､ Numb Timesと言えるのです｡
のために｡
これらのアイテムは
だから今､ 私がリスト3をしたら｡
おい､ 見ろよ｡
なかなかいいじゃないですか｡
なるほど｡
さらに挑戦してみよう｡
私のリスト3は､ ここで少し大きくしてみましょう｡
のマイリストです｡
私は私のリストで私はまだここに保つようにそれを変更したい何？
番号はあるが､ 偶数番号だけ残したい｡
この場合､ 2倍しているからといっても､ すべてです｡
しかし､ 例えば､ 2のべき乗をすると､ ちょっとコメントアウトして､ 「実行」をクリックしましょう｡
そうでない数字もあることがわかります｡
それでも､ この数字は残しておきたい｡
ただし､ 偶数個に限る｡
どうすればいいんだろう？
さて､ 今回はこのリスト式の新しい作り方です｡
今までと全く同じことをする｡
だから､ それをそのままコピーするんです｡
しかし､ 最後に､ ここでは式があることを思い出してください｡ イテラブルのアイテムが何であれ､ それに影響を与えるようなことをするのです｡
物事をループさせるんです｡
そして､ 最後にこの後､ ifと言ったり､ if条件をつけたりすることができるのです｡
では､ 私たちの場合で言うと､ if numとします｡
Modulo 2は0に等しい｡
そのときだけ､ リストに追加する｡
そこで､ 「実行」をクリックすると
ああ｡
そして､ 「クリック実行」のリストになっていることを確認します｡
あれを見てください｡
これらはすべて偶数である｡
では､ このフォーマットを見てみましょう｡
覚えておいてください｡
これらはリスト内包と呼ばれる｡
Pythonでループやappendなどの代わりに､ リストを素早く作成する方法です｡
だから､ こんな風にユニークなことをするための省略形なんです｡
これを実現するためには､ 反復処理する各項目に対して何をしたいかをここで表現する必要があります｡
ループするんです｡
イテラブルでforループを使用し､ 変数にアクションを与え､ さらに必要であれば､
条件を追加して､ この条件に基づいてのみ､ 真か偽かに基づいてリストに含めるというオプションもあります｡
とても､ かっこいいです｡
さて､ リスト理解というのは､ シンプルな一行で済むのでとてもいいのですが｡
このコードを見ていると､ かなり混乱することがあります｡
リストコンダクタに本当に精通していないと､ 何が起こっているのか本当に理解できないのです｡
そのため､ コードが短くなり､ もしかしたらきれいになるかもしれませんが､ 読みやすさは少し損なわれてしまいます｡
だから､ 偶数のリストを生成するとか､ そういう説明的な関数を作ればいいのかもしれない｡
そのため､ より説明的で､ 別の開発者は何が起こっているのかをよりよく理解できるかもしれません｡
だから､ いつもトレードオフなんです｡
一息ついて､ 次のビデオではセットと辞書の理解についてお話ししましょう｡
バイバイ｡