Hatena::Groupnadesiko

そっとなでしこ RSSフィード


メインのブログに書くまでもない、なでしこ学習帳【記事一覧】 【このブログは何?】


特設!→【目次】なでしこ用Twitter 連携ライブラリ「なこったー」で遊ぶ


2010-07-01

順位表作成スクリプト

| 順位表作成スクリプト - そっとなでしこ を含むブックマーク はてなブックマーク - 順位表作成スクリプト - そっとなでしこ

 次に、アニメ公式サイトの被はてなブックマーク数を降順で並べ、その順位表を作成するスクリプト。

 データは次のような項目の二次元配列として持つ。

|【アニメタイトル】|【公式サイトURL】|【被はてなブックマーク数】|

 これをスクリプトで処理した結果、次のような形式の順位表を出力したい。

|【順位】|【<a href="公式サイトURL">アニメタイトル</a>】|【被はてなブックマーク数】|

 手動集計していた時に意外と面倒だったのが、順位の決定。被はてなブックマーク数が同数で同順位になる場合を当然、考慮する必要があります。

■ソースコード

アニメサイト群は「アニメA,http://aaaa/,120
アニメB,http://bbbb/,3
アニメC,http://cccc/,30
アニメD,http://dddd/,30
アニメE,http://eeee/,0
アニメF,http://ffff/,30」。
順位表は「|順位|アニメタイトル|被ブックマーク数|{改行}」。
順位は0。
前データ値は0。
同順位数は1。

アニメサイト群は、アニメサイト群の2を表数値ソート。
回数で1から(アニメサイト群の表行数)まで繰り返す
  アニメサイト群[((アニメサイト群の表行数)-回数)]を「タイトル,URL,被ブックマーク数」へ変数分配。
  もし、(被ブックマーク数=前データ値)ならば
    同順位数に1を直接足す。
  違えば
    順位に同順位数を直接足す。
    同順位数は1。
  順位表は、順位表&「|第{順位}位」&
  「|<a href="{URL}">{タイトル}</a>」&
  「|{被ブックマーク数}|{改行}」。
  前データ値は被ブックマーク数。
ここまで
順位表をメモ記入。
母艦を閉じる。

■出力結果

|順位|アニメタイトル|被ブックマーク数|
|第1位|<a href="http://aaaa/">アニメA</a>|120|
|第2位|<a href="http://cccc/">アニメC</a>|30|
|第2位|<a href="http://dddd/">アニメD</a>|30|
|第2位|<a href="http://ffff/">アニメF</a>|30|
|第5位|<a href="http://bbbb/">アニメB</a>|3|
|第6位|<a href="http://eeee/">アニメE</a>|0|

おお!やっぱりスクリプト化すると作業が楽になるなぁ。

【追記】上記のスクリプトを使った記事を書きました。