एक नेस्टेड सूची एक सूची है जिसके तत्व स्वयं सूचियां हैं। यदि हमारे पास एक अजगर डेटा कंटेनर है जो एक नेस्टेड सूची है, तो हमें कभी-कभी इसे एक चपटी सूची में बदलने की आवश्यकता हो सकती है ताकि प्रत्येक तत्व को आगे संसाधित किया जा सके।
यहां तक कि आंतरिक तत्वों को भी स्वयं नेस्ट किया जा सकता है। और घोंसले के शिकार की कई परतें हो सकती हैं। तो हम रिकर्सन के साथ इस समस्या से संपर्क करेंगे। हम जाँचते रहेंगे कि क्या तत्व नेस्टेड है और तब तक फ़ंक्शन को बार-बार लागू करते रहेंगे जब तक कि तत्व अब एक सूची नहीं है। एक बार जब यह पाया जाता है कि तत्व एक सूची नहीं है, तो हम इसे एक नई सूची में जोड़ देंगे, जिसमें सूची के सभी गैर-नेस्टेड तत्व होंगे।
उदाहरण
listA = [[43, [0]],12, 19, [13,[8, 8]], 21 ]
print('Given nested list: \n', listA)
# Flat List
res = []
# function
def flatlist(l):
for x in l:
if type(x) == list:
flatlist(x)
else:
res.append(x)
flatlist(listA)
print('Flattened List created: \n', res) आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
Given nested list: [[43, [0]], 12, 19, [13, [8, 8]], 21] Flattened List created: [43, 0, 12, 19, 13, 8, 8, 21]