お帰りなさい｡
このアプリに別のレイヤーを追加して､ リンクのリストを上から下へ並べ替えることができます｡
聞いてみよう｡
ここで持っているHacker Newsを返す代わりに､ sort storiesという新しい関数を作ってみます｡
投票すると､ ハッカーニュースに掲載されます｡
リストを作成し､ この関数を作成します｡
ディファインソートと言います｡
ストーリー
票を買う｡
そして､ これはパラメータのハッカーニュースリストを受け取ることになります｡
そして､ ここでは単純なソートアルゴリズムを行うことにします｡
そこで､ 持っているソート機能を使うことにします｡
ハッカーニュースリストにあげます｡
そして､ どうなるか見てみましょう｡
これを実行します｡
あ､ あと､ ここで仕分けをしないといけないですね｡
それがメソッドです｡
もう一度実行してみましょう｡
ここでエラーが発生しました｡ エラーを読むと､ type error, not supported between instances of dict
and dictとあります｡
うーん｡
どういう意味ですか？
さて､ リスト内の項目を並べ替えようとしていますが､ これらはすべて辞書です｡
だから､ Pythonは､ ちょっと､ わからないと言っているのです｡
どのように分類すればいいのですか？
タイトル順､ リンク順､ 投票順で並べ替えましょうか？
教えてください｡
そして､ これは仕分けによくあるパターンで､ 慣れるしかない｡
ラムダ関数を使います｡
2番目のパラメータには､ 並べ替えの基準となるキーを指定します｡
そして､ その並べ替えのキーは､ 「投票数」ですよね？
だから､ これからやることは､ Lambdaと言うだけです｡
そして､ キーを言う｡
そして､ このキーでソートするのは､ 投票数です｡
これを保存してもう一度実行すればいいように
あれを見てください｡
すべて投票順に並べています｡
ご覧の通りです｡
さて､ ラムダで圧倒された方は､ ここでラムダについて説明しているコースのセクションを訪ねてみてください｡
ただ､ これはよくあるパターンで､ ソートで覚えればいいんです｡
辞書をソートするときは必ずキーを使うので､ ラムダで構文を与えてキーを渡せばいいのです｡
ソートしたい項目｡
私たちの場合､ それは投票です｡
最後に､ 実は逆順にしたいんです｡
だから､ リストの一番上の項目は､ あるいは､ リストの最初の項目は､ 最も高い投票数を持つはずです｡
そこで､ 3つ目のパラメータでreverse equals trueと言えば､ 簡単にそれを実現できるのです｡
ただ､ それだけなんです｡
さて､ このコードを保存して実行すると
私たちは､ すべてのトップリンクのリストが､ 非常に高い､ 309票のうちの1票をここに持っていることを確認します｡
とても､ かっこいいです｡
今､ 嬉しいのは､ もうハッカー・ニュースのウェブサイトを見る必要さえないことです｡
完全なプログラマーになって､ ここのタイトルを読むだけでクールなことができますし､ まあ､ Facebookの50億ドルのペナルティについても読めますしね｡
個人情報保護のため
このリンクを選択するだけで､ 例えばターミナルを使っている場合､ 選択をURLとして開くと言うだけで､
それを見ることができます｡
そんな風に､ 物語を直接読み解くことができるのです｡
とても､ かっこいいです｡
これで､ 毎日読めるHacker Newsがきれいになり､ より効率的になったわけです｡
そして､ 朝､ このスクリプトを実行するだけで､ 読書ができるようになるのです｡
さて､ このプロジェクトはいろいろな展開が可能です｡
このリンクを実際にクリックできるように､ 自分のインデックス付きHTMLファイルに表示することができるかもしれません｡
他のWebサイトでも可能です｡
しかし､ 私の挑戦と皆さんへの運動はこうです｡ どうしたら､ このリストを拡大して､ Hacker Newsの最初のページ以外も含めることができるでしょうか？
つまり､ Hacker Newsに戻ると､ 今のところ､ この30個のリンクしかスクレイピングしていないのです｡
しかし､ もし私がここをもっとクリックして､ この2番目のページに行き､ Hacker Newsの最初の2ページをスクレイピングしたいとしたらどうでしょう｡
次の動画では､ どのようにすればいいのでしょうか？
解決策をお伝えしますが､ これを自分で考えて､ どうしたらいいのかチャレンジしてください｡
行き詰まったら
では､ 次のビデオでお会いしましょう｡
バイバイ｡