python - How to separate one list in two via list comprehension or otherwise -


यदि इस तरह से डिक्शनरी आइटम की एक सूची है:

  एल = [{"a "": 1, "बी": 0}, {"a": 3, "b": 1} ...]  

मैं इन प्रविष्टियों को मूल्य के आधार पर विभाजित करना चाहूंगा "बी" का, या तो 0 या 1.

  ए (बी = 0) = [{"a": 1, "b": 1}, ....] बी (बी) = 1) = [{"एक": 3, "बी": 2}, .....]  

मैं साधारण सूची के आकलन का उपयोग करने में सहज हूँ, और मैं वर्तमान में पाशन कर रहा हूँ सूची एल के माध्यम से दो बार एल = डी ["बी"] == 0] बी = [डी के लिए एल में एल अगर डी ["बी"]! = 0]

<पूर्व> ए = कोड>

स्पष्ट रूप से यह सबसे कारगर तरीका नहीं है।

एक और खंड सूची समझ कार्यशीलता के भीतर उपलब्ध नहीं है।

क्या मैं कर सकता हूँ क्या सूची की समझ से मुझे क्या चाहिए?

क्या ऐसा करने का एक बेहतर तरीका है?

मैं पठनीयता और दक्षता के बीच एक अच्छे संतुलन की तलाश कर रहा हूं, पठनीयता के प्रति झुकाव।

धन्यवाद!

अपडेट: सभी टिप्पणियों और विचारों के लिए धन्यवाद! मेरे लिए सबसे आसान एक पढ़ने के लिए है थॉमस द्वारा एक है। लेकिन मैं एलेक्स के सुझाव को भी देखेंगे। मुझे संग्रह मॉड्यूल के पहले कोई संदर्भ नहीं मिला।

सूची की समझ का उपयोग न करें जब आप एक सूची परिणाम चाहते हैं, तब के लिए सूची की आकांक्षाएं हैं आप स्पष्ट रूप से नहीं करते हैं :) लूप के लिए नियमित उपयोग करें:

  ए = [] बी = [] एल में आइटम के लिए: यदि आइटम ['बी'] == 0: लक्ष्य = ए Else: target = b target.append (item)  

आप कर सकते हैं, कहते हैं, (ए, बी) [आइटम ['बी'] = 0 करके स्निपेट को छोटा कर सकते हैं ] .एपेंड (आइटम) , लेकिन क्यों परेशान?


Comments

Popular posts from this blog

objective c - iPhone and it's wireless area -

unix - Listing all shared memory segments used by a process on AIX5.3+ -

.net - Self Tracking Entities (STE)'s and partial updates with EF4 and mVC2 -