Ich habe eine Liste wie dieseWie lösche Duplikate aus einer verschachtelten Liste basierend auf dem ersten Element, während die Länge der Liste priorisiert wird?
[[7, 6, 8], [1, 10], [3, 10], [7, 8], [7, 4], [9, 4], [5, 8], [9, 8]]
Und ich möchte, dass die Ausgabe in etwa so aussehen:
[[7, 6, 8],[1, 10],[3, 10],[9, 4],[5, 8]]
Wenn der Algorithmus Duplikate basierend auf dem ersten Element in der inneren Liste zB entfernen sollte '7','1', '3'
usw. bei der Priorisierung der inneren Listenlänge, dh kürzere sollten zuerst entfernt werden.
fand ich etwas ähnliches here und here, wie man den ersten Teil der Frage zu tun dies mit:
dict((x[0], x) for x in any_list).values()
aber ich weiß nicht, wie die Länge zu priorisieren.
Ist es Ihnen wirklich egal, welche innere Liste entfernt werden sollte, wenn Duplikate die gleiche Länge haben und die Reihenfolge der inneren Listen nicht wichtig ist? Wenn ja, sortiere die äußere Liste zuerst nach der Länge der inneren Liste: https://stackoverflow.com/questions/4735704/ordering-a-list-of-lists-by-lists-len und entferne dann die Duplikate, wie du es erwähnt hast. – StefanS