Diviser une liste en fonction d’une condition ?

| | | | | | | | |

Quel est le meilleur moyen, à la fois esthétique et du point de vue des performances, de diviser une liste d'éléments en plusieurs listes basées sur une condition ? L'équivalent de :

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

existe-t-il une manière plus élégante de procéder ?

Mise à jour : voici le cas d'utilisation réel, pour mieux expliquer ce que j'essaie de faire :

# fichiers ressemble à : [ ("file1.jpg", 33L, ".jpg "), ("fichier2.avi", 999L, ".avi"), ... ] TYPES_IMAGE = (".jpg",".jpeg",".gif",".bmp",".png") images = [f pour f dans les fichiers si f[2].lower() dans IMAGE_TYPES] anims = [f pour f dans les fichiers si f[2].lower() pas dans IMAGE_TYPES]