Vorweg um was es geht: Die folgende Methode soll mir anhand einer Video Liste Datensätze herausfiltern deren Laufzeitlänge länger als der Inhalt des Arguments "Wert" ist. Es geht dabei nur um die erste Stelle(n).
Das Format von "Wert" beträgt beispielsweise "28:57", also 28 Minuten und 57 Sekunden
Gespeichert werden soll dann ein "x" in self.index[] wenn das Ergebnis wahr ist, ansonsten "n".
Mein erster und funktionierender Entwurf war dieser hier:
Code: Alles auswählen
class Videotabelle(Tabelle):
....
....
def find_greater_as(self,wert):
counter = 0
for i in range(len(self.index)):
zahl = self.tabelle[i][9].split(':')
zahl = int(zahl[0])
if zahl >= wert:
self.index[i] ="x"
counter +=1
else:
self.index[i] ="n"
return counter
Code: Alles auswählen
class Videotabelle(Tabelle):
....
....
def find_greater_as(self,wert):
counter = 0
for i in range(len(self.index)):
self.index[i] = "x" if int(self.tabelle[i][9].split(':')[0]) >= wert else "n" # Zeile*
if self.index[i] == "x":
counter +=1
return counter
Was sollte da Vorrang haben, die Kürze des Codes oder die Verständlichkeit irgendwann später mal ?
... Und gibt es eine Möglichkeit in diese Zeile "...#Zeile*" noch den Counter mit einzubauen ?
Der Versuch das so zu machen:
Code: Alles auswählen
counter = 0
self.index[i] = "x"; counter +=1 if int(self.tabelle[i][9].split(':')[0]) >= wert else "n"
Wenn ich statt des Semilikons ein Komma oder Doppelpunkt verwende bekomme ich einen Syntax Error
MfG
Tom