2010-09-04 19 views

उत्तर

57
filter(r.match, list) 
+0

वास्तव में, सूची comprehensions आमतौर पर ऐसी फिल्टर, कम करने, लैम्ब्डा, आदि –

+22

@Ivo के रूप में कार्यात्मक निर्माणों से अधिक पसंद कर रहे हैं : वे आमतौर पर पसंद करते हैं क्योंकि वे आमतौर पर स्पष्ट और अक्सर अधिक संक्षिप्त होते हैं। हालांकि इस मामले में, 'फ़िल्टर' संस्करण पूरी तरह से स्पष्ट है और इसमें बहुत कम शोर है। – sepp2k

32

पूर्ण उदाहरण:

import re 
mylist = ["dog", "cat", "wildcat", "thundercat", "cow", "hooo"] 
r = re.compile(".*cat") 
newlist = filter(r.match, mylist) 
print str(newlist) 

प्रिंटों:

['cat', 'wildcat', 'thundercat'] 
+3

हाय वहाँ, जब मैं उपरोक्त कोड चलाता हूं, तो मुझे 'xx57acda0 पर 'फ़िल्टर ऑब्जेक्ट मिलता है>' मैं गलत क्या कर रहा हूं? – Joshua

+1

पायथन डॉक्स (पायथन 2.7.12) के अनुसार: https://docs.python.org/2/library/functions.html#filter फ़िल्टर किसी ऑब्जेक्ट को कोई सूची नहीं देता है। आप यह कोड भी देख सकते हैं: https://repl.it/X3G/5786 (बस चलाएं) – Mercury

+1

धन्यवाद। मैं मैक पर पायथन 3.5.2 का उपयोग कर रहा हूं। मैंने आपके लिंक की कोशिश की। बेशक यह काम करता है, हालांकि यह सुनिश्चित नहीं है कि मुझे वह संदेश क्यों मिलता है। मैंने 'स्ट्र' को भी हटा दिया है क्योंकि 'फ़िल्टर' किसी भी तरह की सूची का लाभ नहीं लेता है ... – Joshua

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