Podzielić listę na podstawie warunku?

| | | | | | | | |

Jaki jest najlepszy sposób, zarówno pod względem estetycznym, jak i wydajności, aby podzielić listę elementów na wiele list w oparciu o warunek? Odpowiednik:

dobry = [x for x in mylist if x in goodvals] bad = [x for x in mylist if x not in goodvals] 

Czy istnieje bardziej elegancki sposób na zrobienie tego?

Aktualizacja: oto rzeczywisty przypadek użycia, aby lepiej wyjaśnić, co próbuję zrobić:

# pliki wygląda tak: [ ("plik1.jpg", 33L, ".jpg "), ("file2.avi", 999L, ".avi"), ... ] TYPY_OBRAZÓW = (.jpg",".jpeg",".gif",".bmp",".png") images = [f dla f w plikach, jeśli f[2].lower() w TYPACH_OBRAZÓW] anims = [f dla f w plikach, jeśli f[2].lower() nie w TYPACH_OBRAZÓW]