Eine Liste basierend auf einer Bedingung aufteilen?

| | | | | | | | |

Was ist der beste Weg, sowohl ästhetisch als auch aus Performance-Sicht, eine Liste von Elementen basierend auf einer Bedingung in mehrere Listen aufzuteilen? Das Äquivalent von:

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

gibt es einen eleganteren Weg, dies zu tun?

Update: Hier ist der tatsächliche Anwendungsfall, um besser zu erklären, was ich versuche:

# Dateien sehen aus wie: [ ("file1.jpg", 33L, ".jpg "), ("file2.avi", 999L, ".avi"), ... ] IMAGE_TYPES = (".jpg",".jpeg",".gif",".bmp",".png") images = [f für f in Dateien, wenn f[2].lower() in IMAGE_TYPES] anims = [f für f in Dateien, wenn f[2].lower() nicht in IMAGE_TYPES]