多次元配列テーブルデータを Python の reduce() を使って変換する方法について
自分はよく PHP で以下のようにしてデータベースから取得したレコードの変換を行います。
<?php
$list = array(
array("GROUP" => "A", "NAME" => "りんご", "COUNT" => 1),
array("GROUP" => "A", "NAME" => "ゴリラ", "COUNT" => 2),
array("GROUP" => "B", "NAME" => "ラッパ", "COUNT" => 3),
);
$convert_list = array_reduce($list, function($result, $row) {
if (!key_exists($row["GROUP"], $result)) {
$result[$row["GROUP"]] = array();
}
$result[$row["GROUP"]][] = $row;
return $result;
}, array());
var_dump($convert_list);
結果は以下のようになります。
array(2) {
["A"]=>
array(2) {
[0]=>
array(3) {
["GROUP"]=>
string(1) "A"
["NAME"]=>
string(9) "りんご"
["COUNT"]=>
int(1)
}
[1]=>
array(3) {
["GROUP"]=>
string(1) "A"
["NAME"]=>
string(9) "ゴリラ"
["COUNT"]=>
int(2)
}
}
["B"]=>
array(1) {
[0]=>
array(3) {
["GROUP"]=>
string(1) "B"
["NAME"]=>
string(9) "ラッパ"
["COUNT"]=>
int(3)
}
}
}
これと同様の変換をを Python の reduce()
(ないし別の方法)で行うことはできませんでしょうか。