Home > 備忘録 > 言語関連 > 言語共通 > ハッシュ、連想配列、辞書オブジェクトのソート2( 51 )
ハッシュオブジェクト、連想配列、辞書オブジェクトのソートについて、まとめてみた。
ソートデータ
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 住所:東京都江東区青海ソートデータ
$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";
}ソートデータ
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";
}ソートデータ
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']