perl 2次元ハッシュのソート2

2015.01.25 Sunday 22:18
0

    ★ハッシュのソート2
    my %foo;
    $foo{Mon} = 10;
    $foo{Tue} = 200;
    $foo{Wed} = 30;
    $foo{Tur} = 1000;
    $foo{Fri} = 20;
    $foo{Sat} = 50;
    $foo{Sun} = 1;
    ------------------------------
    for my $key (keys %foo) {
    print "$key:$foo{$key}¥n";
    }
    ------------------------------

    実行結果(例)
    Mon:10
    Tue:200
    Fri:20
    Tur:1000
    Wed:30
    Sun:1
    Sat:50

    このハッシュについて、キーと値のそれぞれでソートして出力したいのですが、具体的な方法が分かりません。
    2.ハッシュのキーでソートする
    ハッシュのキーでソートするには、for文のハッシュ名の左側に「sort keys」を追加します。

    ------------------------------
    for my $key (sort keys %foo) {
    print "$key:$foo{$key}¥n";
    }
    ------------------------------
    実行結果
    Fri:20
    Mon:10
    Sat:50
    Sun:1
    Tue:200
    Tur:1000
    Wed:30



    4.ハッシュの値でソートする
    ハッシュの値でソートするには、for文のハッシュ名の左側に「sort values」を追加します。
    ------------------------------
    for my $key (sort values %foo) {
    print "$value¥n";
    }
    ------------------------------
    実行結果
    1
    10
    1000
    20
    200
    30
    50

    6.ハッシュを数値でソートする
    4項と5項は数字が期待通りに並んでいません。これはデフォルトのソートが文字列として扱われるためです。
    数値としてソートするには、数値でのソート条件「{$a <=> $b}」を記述します。
    ------------------------------
    for my $value (sort {$a <=> $b} values %foo) {
    print "$value¥n";
    }
    ------------------------------
    実行結果
    1
    10
    20
    30
    50
    200
    1000



    category:perl | by:ittoocomments(0)trackbacks(0) | -

    スポンサーサイト

    2020.07.25 Saturday 22:18
    0
      category:- | by:スポンサードリンク | - | - | -
      Comment








         
      Trackback
      この記事のトラックバックURL

      ad
      Calender
            1
      2345678
      9101112131415
      16171819202122
      23242526272829
      3031     
      << August 2020 >>
      Selected entry
      PR
      Category
      Archives
      Recent comment
      • パス指定 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated ¥xXX escape
        久米隆文
      • 円マークが自動変換されてる
        aaaaaa
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        66hills
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        ssd
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        max
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        DOM
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        DOM
      • コンピュータ業界の根本的な変化
        cloud
      • コンピュータ業界の根本的な変化
        Dellの仮想化
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        えちごや
      Recent trackback
      • スマートフォンの法人活用例
        無線LANネットのブログ
      • Yahoo!オークションからのアフィリエイト収入が一気に70%減になってしまい涙目になってる話
        特選情報
      Recommend
      Link
      Profile
      Search
      Others
      Mobile
      qrcode
      Powered
      無料ブログ作成サービス JUGEM