একটি নেস্টেড লিস্ট হল এমন লিস্ট যার এলিমেন্টগুলো নিজেও লিস্ট। যদি আমাদের কাছে একটি পাইথন ডেটা কন্টেইনার থাকে যা নেস্টেড লিস্ট, তবে কখনো কখনো সেটিকে ফ্ল্যাটেন করা প্রয়োজন হয় যাতে প্রতিটি এলিমেন্ট আলাদা প্রসেস করা যায়।
ইনার এলিমেন্টগুলোও নেস্টেড হতে পারে। এবং নেস্টিং-এর অনেক লেয়ার থাকতে পারে। তাই আমরা এই সমস্যাটিকে রিকার্শন দিয়ে সমাধান করব। আমরা চেক করব এলিমেন্ট নেস্টেড কিনা এবং তারপর ফাংশনটি বারবার প্রয়োগ করব যতক্ষণ না এলিমেন্ট লিস্ট নাও হয়। একবার পাওয়া গেলে এলিমেন্ট লিস্ট নয়, সেটিকে একটি নতুন লিস্টে অ্যাপেন্ড করব যা লিস্টের সব নন-নেস্টেড এলিমেন্ট ধারণ করবে।
উদাহরণ
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]