अपने डेटा को रूपांतरित करने, छानने और दोबारा इंडेक्स करने के लिए, निर्माण करने वाले अपने लूप को अभिव्यंजक कॉम्प्रिहेंशन से बदलें।
इस पाठ को Kodokon में खोलेंएक लिस्ट कॉम्प्रिहेंशन प्रोग्रामिंग के सबसे आम पैटर्न को संक्षिप्त कर देती है: किसी अनुक्रम को रूपांतरित या छानकर एक लिस्ट बनाना। इसकी वाक्य-रचना एक वाक्य की तरह पढ़ी जाती है: [expression for element in sequence if condition]। append वाले लूप जैसा ही परिणाम, एक ही घोषणात्मक लाइन में, जिसे हर Python डेवलपर तुरंत पहचान लेता है।
prices = [12.0, 49.9, 5.5, 199.0]
with_tax = [round(p * 1.2, 2) for p in prices]
cheap = [p for p in prices if p < 50]
print(with_tax) # [14.4, 59.88, 6.6, 238.8]
print(cheap) # [12.0, 49.9, 5.5]डिक्शनरी कॉम्प्रिहेंशन {key: value for ...} वाक्य-रचना के साथ उसी तर्क का पालन करती है। प्रोजेक्ट में एक बहुत आम उपयोग: ऑब्जेक्ट की किसी लिस्ट को उनके पहचानकर्ता से दोबारा इंडेक्स करना, ताकि हर बार कुछ चाहिए होने पर पूरी लिस्ट छानने के बजाय तत्काल खोज मिल सके।
users = [
{"id": 7, "name": "Alice"},
{"id": 12, "name": "Bruno"},
{"id": 31, "name": "Chloe"},
]
by_id = {u["id"]: u["name"] for u in users}
print(by_id[12]) # Bruno
print(31 in by_id) # Trueif के लिए दो स्थान, दो अलग-अलग भूमिकाएँ। for के बाद रखा जाए, तो यह छानता है: अस्वीकृत तत्व परिणाम में दिखाई नहीं देते। for के पहले रखा जाए, एक शर्त-व्यंजक (a if condition else b) के रूप में, तो यह हर तत्व के लिए एक वैल्यू चुनता है: तब लिस्ट की लंबाई स्रोत जितनी ही रहती है।
scores = [45, 82, 67, 91]
labels = ["pass" if s >= 60 else "fail" for s in scores]
print(labels) # ['fail', 'pass', 'pass', 'pass']