मेरे पास उन मानों की एक सूची है जिन्हें मुझे बुलियन की सूची में दिए गए मानों को फ़िल्टर करने की आवश्यकता है:
list_a = [1, 2, 4, 6] फ़िल्टर = [सच, गलत , सच, झूठा]
मैं निम्न पंक्ति के साथ एक नई फ़िल्टर की गई सूची उत्पन्न करता हूं:
filtered_list = [i indx के लिए, मैं गणना में (list_a) if filter[indx] == True]
जिसके परिणामस्वरूप:
filtered_list प्रिंट करें [1,4]
लाइन काम करती है लेकिन (मेरे लिए) थोड़ी अधिक लगती है और मैं सोच रहा था कि इसे प्राप्त करने का कोई आसान तरीका है या नहीं।
सलाह
दो का सारांश नीचे दिए गए उत्तरों में दी गई अच्छी सलाह:
1- किसी सूची को फ़िल्टर
नाम न दें जैसा मैंने किया क्योंकि यह एक अंतर्निहित फ़ंक्शन है।
2- चीजों की तुलना True
से न करें जैसे मैंने if filter[idx]==True..
के साथ किया था क्योंकि यह अनावश्यक है। बस if filter का उपयोग करें [idx]
काफी है।