एक सशर्त के आधार पर कई सूचियों में आइटम की सूची को विभाजित करने के लिए, सौंदर्यशास्त्र और प्रदर्शन के दृष्टिकोण से, सबसे अच्छा तरीका क्या है? के बराबर:
good = [x for x in mylist if x in goodvals]
bad = [x for x in mylist if x not in goodvals]
यह करने के लिए एक और अधिक सुंदर तरीका है?
अद्यतन: यहाँ का वास्तविक उपयोग मामला है, बेहतर ढंग से समझाने के लिए कि मैं क्या करने की कोशिश कर रहा हूँ:
# files looks like: [ ('file1.jpg', 33L, '.jpg'), ('file2.avi', 999L, '.avi'), ... ]
IMAGE_TYPES = ('.jpg','.jpeg','.gif','.bmp','.png')
images = [f for f in files if f[2].lower() in IMAGE_TYPES]
anims = [f for f in files if f[2].lower() not in IMAGE_TYPES]
str.split(), लगातार उप-सूचियों के एक आदेश संग्रह में सूची को विभाजित करने के लिए। जैसे split([1,2,3,4,5,3,6], 3) -> ([1,2],[4,5],[6]), किसी सूची के तत्वों को श्रेणी के अनुसार विभाजित करने का विरोध ।
IMAGE_TYPES = set('.jpg','.jpeg','.gif','.bmp','.png')। n (o / 2) के बजाय n (1), व्यावहारिक रूप से पठनीयता में कोई अंतर नहीं है।