2017-01-26 3 views
-2

ich einen Code zu verstehen, versuche ich bin nicht sicher, ob ich recht habe:Confused Codezeile

left_lines = [[310, 319, 318, 406, 317, 322],[423, 425, 425, 357, 419, 414]] 
test = sorted([line[1] for line in left_lines])[int(len(left_lines)/2)] 

Wie ist das mir nur eine Nummer zu geben? Wird versucht, die kleinste Nummer in left_lines[1] zu finden?

aktualisiert

Referenz: http://sdc.autojazari.com/lane-detection/

Update 2

Ich bin neu in Python

+1

Warum Sie nicht den Autor fragen ? – TigerhawkT3

+0

Was versuchen Sie hier zu erreichen? Was sollte die erwartete Ausgabe dieses Codes sein? –

+0

@ TigerhawkT3 Ich weiß nicht, wer der Autor ist – Akshay

Antwort

1

es sich auseinander nehmen lassen.

In [3]: [line[1] for line in left_lines] 
Out[3]: [319, 425] 

gibt Ihnen die zweite Zahl von jeder Unterliste (Sie rufen eine Unterliste eine Zeile)

sorted([line[1] for line in left_lines]) 
Out[4]: [319, 425] 

sortiert die empfangene Liste.

Jetzt setzt der [int(len(left_lines)/2)] Teil einen Index auf die empfangene Liste. Der Index ist die Anzahl der Zeilen geteilt durch 2 (und in ein int konvertiert).

Also, was dieser Code ist, vorausgesetzt, Sie haben x Zeilen ist die zweite Nummer von jeder Zeile von kleinsten zu großen bestellt, und geben den mittleren Wert.

Vielleicht ist dies ein Median aller zweiten Elemente aller Zeilen.

+0

Ja Wahr, mein Schlechter! Sehr neu in Python – Akshay

1
left_lines = [[310, 319, 318, 406, 317, 322],[423, 425, 425, 357, 419, 414]] 
test = sorted([line[1] for line in left_lines])[int(len(left_lines)/2)] 

left_lines

Dieser Code ist eine Liste der Liste bedeutet, dass Sie Liste deklariert verschachtelt sind.

Test

sorted() ist eine Funktion für einen bestimmten Zweck zu sortieren.

[line[1]] kehrt Liste der [310, 319, 318, 406, 317, 322],[423, 425, 425, 357, 419, 414]

for line in left_lines diese ganzen ganze Liste in sequentieller Weise iteriert wird

[int(len(left_lines)/2)] int(len()) Listenlänge

(left_lines)/2 in int umgewandelt wird, die Länge von 2

0
dividieren
[line[1] for line in left_lines] 

ist dies bekannt als Listenkomprimierung

Die Ausgabe der obigen Zeile wird das zweite Element (Index 1) jeder Unterliste der Liste left_lines [319,425] sein.

Jetzt ist die sortierte Funktion eingebaut, die die sortierte Liste zurückgibt (Sie können Tupel auch mit dieser Methode sortieren).

sorted([line[1] for line in left_lines])=[319,425] 

len ein in Funktion gebaut, um die Länge der Zeichenfolge, Tupel oder Liste zu finden. So

int(len(left_lines)/2)=1 

Schließlich

sorted([line[1] for line in left_lines])[int(len(left_lines)/2)]=[319,425][1] 

was bedeutet, das zweite Element der Liste dh 425.

So ist Test gleich 425.