Seite 1 von 1

In einer Liste Werte vergleichen

Verfasst: Dienstag 13. September 2011, 08:59
von HilfeSuchend
Servus,

ich habe eine Liste [[1, 13, 15757.5927734375, u'edge358'], [1, 15, 30747.810302734375, u'edge358'], [1, 17, 24298.661178588867, u'edge358'], [1, 18, 0.0, u'edge171']] (das ist nur ein Auszug), mit der ich folgendes machen möchte: Für alle Ergebnisse, wo der erste und letzte Eintrag eines Substrings (also bswp. die 1 und edge358) gleich sind, soll er das Minimum im vorletzen (also in diesem Beispiel 15757.5927734375) Eintrag finden.
Ich steh leider grad echt auf dem Schlauch, vielen Dank schon einmal für Eure Hilfe.

Re: In einer Liste Werte vergleichen

Verfasst: Dienstag 13. September 2011, 09:21
von BlackJack
@HilfeSuchend: Bei erster und letzter Eintrag eines *Substrings* meintest Du sicher *Subliste*!?

Sind die Suchkriterien vorgegeben, oder soll das Ergebnis für *alle* vorkommenden Paare vom ersten und letzten Element der Sublisten ermittelt werden?

Gehen wir mal von gegebenen Suchkriterien aus, dann musst Du doch nur die Sublisten wählen (siehe [27] weiter unten). Da das vorletzte Element von nehmen (→[28]). Und von denen dann das Minimum auswählen (→[29)]. Mal schrittweise entwickelt:

Code: Alles auswählen

In [25]: data
Out[25]: 
[[1, 13, 15757.5927734375, u'edge358'],
 [1, 15, 30747.810302734375, u'edge358'],
 [1, 17, 24298.661178588867, u'edge358'],
 [1, 18, 0.0, u'edge171']]

In [26]: [x for x in data]
Out[26]: 
[[1, 13, 15757.5927734375, u'edge358'],
 [1, 15, 30747.810302734375, u'edge358'],
 [1, 17, 24298.661178588867, u'edge358'],
 [1, 18, 0.0, u'edge171']]

In [27]: [x for x in data if x[0] == 1 and x[-1] == 'edge358']
Out[27]: 
[[1, 13, 15757.5927734375, u'edge358'],
 [1, 15, 30747.810302734375, u'edge358'],
 [1, 17, 24298.661178588867, u'edge358']]

In [28]: [x[-2] for x in data if x[0] == 1 and x[-1] == 'edge358']
Out[28]: [15757.5927734375, 30747.810302734375, 24298.661178588867]

In [29]: min(x[-2] for x in data if x[0] == 1 and x[-1] == 'edge358')
Out[29]: 15757.5927734375

Re: In einer Liste Werte vergleichen

Verfasst: Dienstag 13. September 2011, 10:36
von HilfeSuchend
oh man, ich Depp.

1000 Dank, funzt einwandfrei.
und ich meinte natürlich subliste ;-)