একটি লিস্টের ভিতর লিস্টকে নেস্টেড লিস্ট বলা হয়। পাইথনে নেস্টেড লিস্ট গ্রেসফুলি হ্যান্ডেল করার এবং কমন ফাংশন প্রয়োগ করে ম্যানিপুলেট করার ফিচার রয়েছে। এই আর্টিকেলে আমরা দেখব কীভাবে লিস্ট কম্প্রিহেনশন ব্যবহার করে পাইথনে নেস্টেড লিস্ট তৈরি ও ব্যবহার করা যায়।
ম্যাট্রিক্স তৈরি
ম্যাট্রিক্স তৈরি মানে সারি ও কলামের সিরিজ তৈরি। আমরা for লুপ ব্যবহার করে ম্যাট্রিক্সের সারি ও কলাম তৈরি করতে পারি একটি পাইথন লিস্টকে for লুপসহ অন্য একটি পাইথন লিস্টের for লুপের ভিতর রাখি।
উদাহরণ
matrix = [[m for m in range(4)] for n in range(3)] print(matrix)
উপরোক্ত কোড চালালে নিচের ফলাফল পাওয়া যাবে:
[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]
নেস্টেড লিস্ট থেকে ফিল্টারিং
সাব-লিস্টের ভিতর for লুপ ব্যবহার করে লিস্ট কম্প্রিহেনশনে ফিল্টারিং ফিচার ব্যবহার করা যায়। নিচে আমাদের একটি ২-ডাইমেনশনাল লিস্ট আছে যার ভিতর একটি লেয়ার সাব-লিস্ট বড় লিস্টের ভিতরে রয়েছে। আমরা একটি ফিল্টার কন্ডিশন ব্যবহার করে এই নেস্টেড লিস্টগুলোর থেকে সিলেক্টিভ এলিমেন্ট অ্যাক্সেস করি।
উদাহরণ
years = [['January', 'February', 'March'], ['April', 'May', 'June'], ['July', 'August', 'September'], ['October', 'November', 'December']] # if কন্ডিশনসহ নেস্টেড লিস্ট কম্প্রিহেনশন years = [years for sublist in years for years in sublist if len(years) <= 5] print(years)
উপরোক্ত কোড চালালে নিচের ফলাফল পাওয়া যাবে:
['March', 'April', 'May', 'June', 'July']
নেস্টেড সাব-লিস্ট ফ্ল্যাটেন করা
আমরা একটি নেস্টেড লিস্ট लेकर সেটিকে ফ্ল্যাটেন করতে পারি, অর্থাৎ কোনো সাব-লিস্ট ছাড়া একটি সিঙ্গেল লিস্ট তৈরি করতে পারি।
উদাহরণ
nested_list = [[1], [17, 19], [21, 23, 25], [32, 35, 37, 39]] # 2-D ম্যাট্রিক্স ফ্ল্যাটেন করার নেস্টেড লিস্ট কম্প্রিহেনশন flattened_list = [value for sublist in nested_list for value in sublist] print(flattened_list)
উপরোক্ত কোড চালালে নিচের ফলাফল পাওয়া যাবে:
[1, 17, 19, 21, 23, 25, 32, 35, 37, 39]