| 

.NET C# Java Javascript Exception

2
Meine Ausgangssituation ist eine mehrdimensionalen Liste welche mit der sorted Funktion sortiert wird:
list = sorted(d, key=lambda test: test[1])
print list

>>> [(102, 0, u'Test1'), (1, 0, u'Test2'), (2, 0, u'Test3'), (77, 1, u'Test4'),
(75, 2, u'Test5')]


Sollte ein Eintrag an der zweiten Stelle keine 0 haben, soll die Nummer genommen werden und der Eintrag der mit dieser Nummer beginnt aus der Liste gelöscht werden.

Beispiel:
(75, 2, u'Test5') Hier soll der Eintrag gelöscht werden der mit einer 2beginnt -> (2, 0, u'Test3')

Hat jemand eine Idee wie ich das am geschicktesten anstellen kann?
16.03.2011
FX 437 1 9
FX 437 1 9
1 Antwort
1
Wenn ich das Problem richtig verstanden habe, könntest Du mit einem List-Comprehension-Ausdruck alle Elemente nehmen, deren erste Nummer nicht in der Menge der zweiten Nummern != 0 ist:
[y for y in liste if not y[0] in set([x[1] for x in liste if x[1] != 0])]
16.03.2011
Al 66 1
Vielen Dank, funktioniert wunderbar und wieder etwas mit dem "List-Comprehension-Ausdruck" dazugelernt.
FX 23.03.2011

Stelle deine Python-Frage jetzt!