[PYTHON] Sortieren Sie die Elemente eines Arrays, indem Sie Bedingungen angeben

#PHP 5.4.9
<?php

$ary = array(
  array('name'=>'aaa','age'=>111,'id'=>1),
  array('name'=>'bbb','age'=>555,'id'=>2),
  array('name'=>'ccc','age'=>222,'id'=>3)
);

function cmp_by_key($k){
  $cmp = function($a,$b)use($k) {
    if($a[$k] == $b[$k]){
      return 0;
    }elseif($a[$k] < $b[$k]){
      return -1;
    }else{
      return 1;
    }
  };
  return $cmp;
}

#order by age
echo 'order by age'.PHP_EOL;
$by_age = cmp_by_key('age');
usort($ary,$by_age);
foreach($ary as $k => $v ){
  echo str_replace(PHP_EOL,'',var_export($v,true)).PHP_EOL;
}

#order by id
echo 'order by id'.PHP_EOL;
$by_id = cmp_by_key('id');
usort($ary,$by_id);
foreach($ary as $k => $v ){
  echo str_replace(PHP_EOL,'',var_export($v,true)).PHP_EOL;
}

/* output 

order by age
array (  'name' => 'aaa',  'age' => 111,  'id' => 1,)
array (  'name' => 'ccc',  'age' => 222,  'id' => 3,)
array (  'name' => 'bbb',  'age' => 555,  'id' => 2,)
order by id
array (  'name' => 'aaa',  'age' => 111,  'id' => 1,)
array (  'name' => 'bbb',  'age' => 555,  'id' => 2,)
array (  'name' => 'ccc',  'age' => 222,  'id' => 3,)

*/

#Python 2.7.1
data =[
  {'name':'aaa','age':111,'id':1},
  {'name':'bbb','age':555,'id':2},
  {'name':'ccc','age':222,'id':3}]

print "order by age"
for row in sorted(data,key=lambda x:x['age']):
  print row

print "order by id"
for row in sorted(data,key=lambda x:x['id']):
  print row
order by age

""" output 
{'age': 111, 'name': 'aaa', 'id': 1}
{'age': 222, 'name': 'ccc', 'id': 3}
{'age': 555, 'name': 'bbb', 'id': 2}
order by id
{'age': 111, 'name': 'aaa', 'id': 1}
{'age': 555, 'name': 'bbb', 'id': 2}
{'age': 222, 'name': 'ccc', 'id': 3}
"""
//scala 2.10.1
var data = List(
  Map("name"->"aaa","age"->"111","id"->"1"),
  Map("name"->"bbb","age"->"555","id"->"2"),
  Map("name"->"ccc","age"->"222","id"->"3"))

//order by age
var by_age = data.sortBy( a=>a("age").toInt )
println("order by age")
by_age.foreach(println)

//order by id
var by_id = data.sortBy( a=>a("id").toInt )
println("order by id")
by_id.foreach(println)

/* output
order by age
Map(name -> aaa, age -> 111, id -> 1)
Map(name -> ccc, age -> 222, id -> 3)
Map(name -> bbb, age -> 555, id -> 2)
order by id
Map(name -> aaa, age -> 111, id -> 1)
Map(name -> bbb, age -> 555, id -> 2)
Map(name -> ccc, age -> 222, id -> 3)
*/

Recommended Posts

Sortieren Sie die Elemente eines Arrays, indem Sie Bedingungen angeben
Sortieren Sie nach Angabe der Bedingungen in CASTable
Die Art des Tupel-Arrays kann durch Angabe des Schlüssels (Python) beschleunigt werden.
Sortieren durch Angabe einer Spalte im Python Numpy-Array.
[Python] So sortieren Sie nach dem N-ten M-ten Element eines mehrdimensionalen Arrays
Sortieren Sie die Liste der Tupel in Python, indem Sie die aufsteigende / absteigende Reihenfolge mehrerer Schlüssel angeben
So extrahieren Sie Bedingungen (erwerben Sie alle Elemente der Gruppe, die die Bedingungen erfüllen) für Gruppe für Gruppe
Sortieren Sie das String-Array nach Länge und japanischer Silbe
Ich möchte die Authentizität eines Elements eines numpy-Arrays bestimmen
[Python] Sortierbar nach mehreren Bedingungen sortieren
[Python] Zeigt nur die Elemente der Liste nebeneinander an [Vertikal, horizontal]
[Python] Verwendung der for-Anweisung. Eine Methode zum Extrahieren durch Angabe eines Bereichs oder von Bedingungen.
[OpenCV] Über das von imread zurückgegebene Array
Installieren Sie, indem Sie die Version mit pip angeben
Lesen Sie die Datei, indem Sie den Zeichencode angeben.
Pandas des Anfängers, vom Anfänger, für den Anfänger [Python]
Geben Sie anschließend die Bedingungen mit tweepy an
Importieren Sie, indem Sie den Verzeichnispfad direkt angeben
[Python] Kombinieren Sie alle Elemente in einem Array
Checkliste, wie Sie vermeiden können, die Elemente des Numpy-Arrays mit for zu drehen
Holen Sie sich das letzte Element des Arrays, indem Sie Zeichenfolgen in Python und PHP aufteilen
Überprüfen Sie den Betrieb von OpenCV3, das von Anaconda installiert wurde
[Python] Checklistenelemente alle, alle
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
Angeben des Bereichs von Ruby- und Python-Arrays
[Python] Sortieren Sie die Tabelle nach sort_values (pandas DataFrame)
BeautifulSoup-Trick: Entscheiden Sie das Tag, indem Sie den Pfad angeben
Die Form der eindimensionalen Anordnung von Numpy war kompliziert
Minimieren Sie die Anzahl der Polierungen, indem Sie die Kombination optimieren
Beurteilung des Endes von Mahjong durch Kombinationsoptimierung
[Python numpy] Geben Sie den Index des Arrays dynamisch an
Ausgabe in Form eines Python-Arrays
Suchen Sie nach dem Wert der Instanz in der Liste
[Python] Manipulation von Elementen in einer Liste (Array) [Sortieren]
Sortieren Sie die aktualisierten Dateien innerhalb des durch den Befehl find angegebenen Zeitraums in der Reihenfolge ihrer Größe
Nach Pandas sortieren
Extrahieren Sie den Statuscodefehler der Serie 400.500 des Apache-Zugriffsprotokolls, indem Sie den Zeitbereich angeben
Zeigen Sie nach und nach die Ausgabe des Befehls an, der von subprocess.Popen ausgeführt wird
Optischer Fluss, das von OpenCV aufgenommene dynamische Bild
Die Geschichte der durch gcrypto20 verursachten Nichtübereinstimmung von Hash Sum
Holen Sie sich das Bild von "Suzu Hirose" von Google Bildersuche.
○○ Probleme im Fachbereich Mathematik mit Optimierung lösen
Python3 datetime ist schneller, wenn nur die Zeitzone angegeben wird
Ich verglich die Identität der Bilder nach Hu Moment
[Statistik] Verstehen Sie den Mechanismus von Q-Q-Plots mit Animation.
[Python] Manipulation von Elementen in der Liste (Array) [Hinzufügen / Löschen]
[Golang] Geben Sie ein Array für den Wert der Karte an
Ermitteln Sie die Größe (Anzahl der Elemente) von Union Find in Python
Greifen Sie auf Github zu, indem Sie den SSH-Schlüssel in GitPython angeben
[Python] Gibt alle Kombinationen von Elementen in der Liste aus
Gruppieren Sie nach aufeinanderfolgenden Elementen einer Liste in Python
[Django 2.2] Sortieren und erhalten Sie den Wert des Beziehungsziels
Spielen Sie Musik, indem Sie auf die inoffizielle API von Google Play Music klicken
Konvertieren Sie Elemente des Numpy-Arrays von float in int
Die Kopiermethode von pandas.DataFrame ist standardmäßig Deep Copy
Erstellen Sie ein zweidimensionales Array, indem Sie am Ende eines leeren Arrays mit numpy eine Zeile hinzufügen