जब आप 2D सूचियों के साथ काम कर रहे हैं, तो आप लिस्ट कॉम्प्रिहेंशन का उपयोग करके वस्तुओं पर इटरेट कर सकते हैं।
grid = [
[10, 20, 30],
[40, 50, 60],
]
squared = [[i * i for i in row] for row in grid]
print(squared)
# [[100, 400, 900], [1600, 2500, 3600]]
यहाँ बाहरी लूप grid की प्रत्येक पंक्ति पर चलता है। फिर हम प्रत्येक पंक्ति के प्रत्येक आइटम पर इटरेट करते हैं।
यदि हम परिणामस्वरूप 2D सूची नहीं चाहते हैं, तो हम आंतरिक ब्रैकेट्स को हटाकर और for i in row को आंतरिक लूप से बाहर करके ग्रिड को फ्लैट कर सकते हैं। हम पहले for row in grid के साथ ग्रिड पर इटरेट करते हैं और फिर for i in row:
grid = [
[10, 20, 30],
[40, 50, 60],
]
squared = [i * i for row in grid for i in row]
print(squared)
# [100, 400, 900, 1600, 2500, 3600]
चुनौती
क्या आप लिस्ट कॉम्प्रिहेंशन का उपयोग करके शतरंज बोर्ड के सभी कोऑर्डिनेट्स प्रिंट कर सकते हैं?
संख्याएँ 1 से 8 तक हैं, और अक्षर हैं A B C D E F G H। क्रमांकन A1 B1 C1 ... H1 इस तरह जाता है, अगली पंक्ति A2 B2 C2 ... H2 है, आदि। प्रत्येक पंक्ति को अलग से प्रिंट करें।