Een lijst splitsen op basis van een voorwaarde?

| | | | | | | | |

Wat is de beste manier, zowel esthetisch als vanuit prestatieperspectief, om een lijst met items op te splitsen in meerdere lijsten op basis van een voorwaarde? Het equivalent van:

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

is er een elegantere manier om dit te doen?

Update: hier is het daadwerkelijke gebruik, om beter uit te leggen wat ik probeer te doen:

# bestanden zien eruit als: [ ("file1.jpg", 33L, ".jpg "), ("file2.avi", 999L, ".avi"), ... ] IMAGE_TYPES = (".jpg",".jpeg",".gif",".bmp",".png") images = [f voor f in bestanden als f[2].lower() in IMAGE_TYPES] anims = [f voor f in bestanden als f[2].lower() niet in IMAGE_TYPES]