文書更新:2019年06月18日(火) 午後1時23分29秒

Home > 備忘録 > 言語関連 > 言語共通 > ハッシュ、連想配列、辞書オブジェクトのソート2( 51 )

ハッシュオブジェクト、連想配列、辞書オブジェクトのソートについて、まとめてみた。

ハッシュ、連想配列、辞書オブジェクトのソート2

  1. ruby 版
  2. ソートデータ
    zipcode=[
    {:zip=>"135-0064",:adr=>"東京都江東区青海"},
    {:zip=>"162-0812",:adr=>"東京都新宿区西五軒町"},
    {:zip=>"675-0024",:adr=>"兵庫県加古川市尾上町長田"},
    {:zip=>"928-0032",:adr=>"石川県輪島市小伊勢町"},
    {:zip=>"920-1132",:adr=>"石川県金沢市朝加屋町"},
    {:zip=>"670-0944",:adr=>"兵庫県姫路市阿保"}
    ]
    zipcode<<{:zip=>"270-0151",:adr=>"千葉県流山市後平井"}	←要素を追加
    zipcode.push({:zip=>"380-0941",:adr=>"長野県長野市安茂里"})	←要素を追加
    昇順
    #zipによるソート
    zipcode.sort{|a,b| a[:zip]<=>b[:zip]}.each{ |key|
    	puts "〒"+key[:zip]+" 住所:"+key[:adr]
    }
    [結果表示]
    〒135-0064 住所:東京都江東区青海
    〒162-0812 住所:東京都新宿区西五軒町
    〒270-0151 住所:千葉県流山市後平井
    〒380-0941 住所:長野県長野市安茂里
    〒670-0944 住所:兵庫県姫路市阿保
    〒675-0024 住所:兵庫県加古川市尾上町長田
    〒920-1132 住所:石川県金沢市朝加屋町
    〒928-0032 住所:石川県輪島市小伊勢町
    降順
    #zipによるソート
    zipcode.sort{|a,b| b[:zip]<=>a[:zip]}.each{ |key|
    	puts "〒"+key[:zip]+" 住所:"+key[:adr]
    }
    [結果表示]
    〒928-0032 住所:石川県輪島市小伊勢町
    〒920-1132 住所:石川県金沢市朝加屋町
    〒675-0024 住所:兵庫県加古川市尾上町長田
    〒670-0944 住所:兵庫県姫路市阿保
    〒380-0941 住所:長野県長野市安茂里
    〒270-0151 住所:千葉県流山市後平井
    〒162-0812 住所:東京都新宿区西五軒町
    〒135-0064 住所:東京都江東区青海
  3. php 版( 連想配列 )
  4. ソートデータ
    $zipcode=array(
    array("zip"=>"135-0064","adr"=>"東京都江東区青海"),
    array("zip"=>"162-0812","adr"=>"東京都新宿区西五軒町"),
    array("zip"=>"380-0941","adr"=>"長野県長野市安茂里"),
    array("zip"=>"270-0151","adr"=>"千葉県流山市後平井"),
    array("zip"=>"928-0032","adr"=>"石川県輪島市小伊勢町"),
    array("zip"=>"920-1132","adr"=>"石川県金沢市朝加屋町"),
    array("zip"=>"670-0944","adr"=>"兵庫県姫路市阿保")
    );
    $zipcode[]=array("zip"=>"675-0024","adr"=>"兵庫県加古川市尾上町長田");	←要素を追加
    昇順
    #zipによるソート
    foreach ((array) $zipcode as $key => $value) {
        $sort[$key] = $value["zip"];
    }
    array_multisort($sort, SORT_ASC, $zipcode);
    foreach($zipcode as $key ){
    	print "〒${key['zip']} 住所:${key['adr']}\n";
    }
    降順
    #zipによるソート
    foreach ((array) $zipcode as $key => $value) {
        $sort[$key] = $value["zip"];
    }
    array_multisort($sort, SORT_DESC, $zipcode);
    foreach($zipcode as $key ){
    	print "〒${key['zip']} 住所:${key['adr']}\n";
    }
  5. perl 版
  6. ソートデータ
    my $zipcode=[
    {zip=>"135-0064",adr=>"東京都江東区青海"},
    {zip=>"162-0812",adr=>"東京都新宿区西五軒町"},
    {zip=>"380-0941",adr=>"長野県長野市安茂里"},
    {zip=>"270-0151",adr=>"千葉県流山市後平井"},
    {zip=>"928-0032",adr=>"石川県輪島市小伊勢町"},
    {zip=>"920-1132",adr=>"石川県金沢市朝加屋町"},
    {zip=>"670-0944",adr=>"兵庫県姫路市阿保"}
    ];
    push @$zipcode,{zip=>"675-0024",adr=>"兵庫県加古川市尾上町長田"};	←要素を追加
    昇順
    #zipによるソート
    @$zipcode = sort { $a->{zip} <=> $b->{zip} } @$zipcode;	#昇順ソート
    foreach my $key(@$zipcode){
    	print "郵便番号=$key->{zip}, 住所=$key->{adr}\n";
    }
    降順
    #zipによるソート
    @$zipcode = sort { $b->{zip} <=> $a->{zip} } @$zipcode;	#降順ソート
    foreach my $key(@$zipcode){
    	print "郵便番号=$key->{zip}, 住所=$key->{adr}\n";
    }
  7. python 版( 辞書オブジェクト )
  8. ソートデータ
    zipcode=[
    {"zip":"135-0064","adr":"東京都江東区青海"},
    {"zip":"162-0812","adr":"東京都新宿区西五軒町"},
    {"zip":"380-0941","adr":"長野県長野市安茂里"},
    {"zip":"270-0151","adr":"千葉県流山市後平井"},
    {"zip":"928-0032","adr":"石川県輪島市小伊勢町"},
    {"zip":"920-1132","adr":"石川県金沢市朝加屋町"},
    {"zip":"670-0944","adr":"兵庫県姫路市阿保"}
    ]
    zipcode.append({"zip":"675-0024","adr":"兵庫県加古川市尾上町長田"});	←要素を追加
    昇順
    #zipによるソート
    data = sorted(zipcode, key=lambda x: x['zip'],reverse=False)
    for i in data:
        print "〒="+i['zip']+",住所="+i['adr']
    降順
    #zipによるソート
    data = sorted(zipcode, key=lambda x: x['zip'],reverse=True)
    for i in data:
        print "〒="+i['zip']+",住所="+i['adr']