2009-03-24 19 views
23

मेरे पास वस्तुओं की एक सूची है। ऑब्जेक्ट में 3 स्ट्रिंग विशेषताएँ हैं। मैं एक सूची बनाना चाहता हूं जिसमें कक्षा से केवल एक विशिष्ट विशेषता है।वस्तुओं की सूची से निकालने के लिए विशिष्ट विशेषता की एक सूची कैसे निकालें?

क्या ऐसा करने के लिए कोई अंतर्निहित कार्य है?

उत्तर

36

एक सूची समझ ठीक काम करेगा:

[o.my_attr for o in my_list] 

लेकिन वहाँ बिल्ट-इन कार्य का एक संयोजन है, जब से तुम :-) पूछना

from operator import attrgetter 
map(attrgetter('my_attr'), my_list) 
+0

उत्कृष्ट। धन्यवाद! –

+0

यदि आपको आयात करने की आवश्यकता है तो अंतर्निहित नहीं है। ;) http://docs.python.org/library/functions.html – SilentGhost

+3

मैं अनुरोध करता हूं: "अंतर्निर्मित"! = "__builtins__ '। ठीक है, यह मेरी कहानी है और मैं इसके लिए चिपक रहा हूं, अधिकारी: -) –

0

मान लिया जाये कि आप ऐसा करते हैं objects नामक एक सूची में वस्तुओं के लिए क्षेत्र b हैं:

[o.b for o in objects] 
+0

मुझे लगता है आप का मतलब [ वस्तुओं में ओ के लिए ओबी]। –

3

पहली बात यह है कि मेरे दिमाग में आया था:

attrList = map(lambda x: x.attr, objectList) 
+0

लैम्ब्डा के साथ क्या गलत है? –

7

आप कुछ इस तरह की तलाश में हैं ?

[o.specific_attr for o in objects] 
संबंधित मुद्दे

 संबंधित मुद्दे