Seite 1 von 1

Ein Array nach einer Spalte sortieren?

Verfasst: Dienstag 16. Februar 2021, 12:28
von uLocked
Hallo,

ich möchte die Reihen meines Arrays nach der Größe von Spalte 3 sortieren.
Drauf2Abstand heißt das Array und die Tupel werden so hinzugefügt:

Code: Alles auswählen

drauf2Abstand.append([punkt1,punkt2,Abstand])

Code: Alles auswählen

   
for x in range(0, len(drauf2Abstand)):
        print(drauf2Abstand[x])
Das ist derzeit meine Ausgabe.
Wie kann ich
#Spalte 1 #Spalte 2 #Spalte 3
[array([633, 283], dtype=int32), array([682, 354], dtype=int32), 86.2670273047588]
[array([634, 282], dtype=int32), array([683, 354], dtype=int32), 87.09190547921202]
[array([634, 282], dtype=int32), array([684, 353], dtype=int32), 86.83893136145792]
[array([635, 281], dtype=int32), array([685, 353], dtype=int32), 87.65842800324451]
[array([636, 280], dtype=int32), array([686, 353], dtype=int32), 88.48163651289458
So hätte ich es gerne:
#Spalte 1 #Spalte 2 #Spalte 3
[array([636, 280], dtype=int32), array([686, 353], dtype=int32), 88.48163651289458]
[array([635, 281], dtype=int32), array([685, 353], dtype=int32), 87.65842800324451]
[array([634, 282], dtype=int32), array([683, 354], dtype=int32), 87.09190547921202]
[array([634, 282], dtype=int32), array([684, 353], dtype=int32), 86.83893136145792]
[array([633, 283], dtype=int32), array([682, 354], dtype=int32), 86.2670273047588]

Habs gelöst:

Code: Alles auswählen

sorted_by_third = sorted(drauf2Abstand, key=lambda tup: tup[2])
        print(sorted_by_third[x])

Re: Ein Array nach einer Spalte sortieren?

Verfasst: Dienstag 16. Februar 2021, 13:15
von __blackjack__
@uLocked: ``for i in range(len(sequence)):`` ist in Python ein „anti pattern“ weil man direkt über die Elemente von Sequenzwerten iterieren kann, ohne den unnötigen Umweg über einen Laufindex:

Code: Alles auswählen

for item in drauf2abstand:
    print(item)
Falls `tup` eine Abkürzung für `tuple` sein sollte: das ist falsch, weil es sich da gar nicht um ein Tupel handelt. Grunddatentypen haben in Namen auch eher nichts zu suchen.

Re: Ein Array nach einer Spalte sortieren?

Verfasst: Dienstag 16. Februar 2021, 14:01
von einfachTobi
Erneut beschleicht mich das Gefühl, dass hier Arrays anders verwendet werden, als es sinnvoll wäre. Ein Array in dieser Form scheint nicht ausgereift. Es dann in Schleifen zu erweitern ebenfalls nicht. Wenn du uns in den Gesamtzusammenhang einweihst, können wir ggf. konkrete Tipps zur Umsetzung des Vorhabens geben.