Q ভাষায় Lists হল এক ধরনের ডেটা স্ট্রাকচার যা একাধিক মান ধারণ করতে পারে। এটি একটি অর্ডারড সংগ্রহ যা প্রাথমিকভাবে গাণিতিক বা টেক্সট ডেটার সাথে কাজ করার জন্য ব্যবহৃত হয়। Q ভাষায় Lists তৈরি করা এবং ম্যানিপুলেট করা খুবই সহজ এবং এতে বিভিন্ন ধরনের কার্যক্রম করা যায়, যেমন যোগ করা, মুছে ফেলা, সংশোধন করা, ফিল্টারিং ইত্যাদি।
১. Lists এর ডিক্লারেশন (Declaration)
Q ভাষায় Lists তৈরি করার জন্য একটি সাধারণ সিনট্যাক্স ব্যবহার করা হয়, যেখানে বিভিন্ন ধরনের ডেটা (integer, float, string) একত্রিত করা যায়। Lists সাধারণত এক বা একাধিক উপাদান ধারণ করে।
উদাহরণ:
a: 1 2 3 4 5 / একটি ইনটিজার লিস্ট
b: 3.14 2.71 1.61 / একটি ফ্লোট লিস্ট
c: "apple" "banana" "cherry" / একটি স্ট্রিং লিস্টএখানে, a একটি ইনটিজার লিস্ট, b একটি ফ্লোট লিস্ট, এবং c একটি স্ট্রিং লিস্ট। আপনি চাইলে বিভিন্ন ধরনের ডেটা একত্রিত করতে পারেন।
২. Lists এর ম্যানিপুলেশন (Manipulation)
Q ভাষায় Lists এর ওপর বিভিন্ন ধরনের অপারেশন বা ম্যানিপুলেশন করা যায়। এর মধ্যে যোগ করা, অপসারণ, ফিল্টারিং, এবং একাধিক মৌলিক কার্যক্রম অন্তর্ভুক্ত রয়েছে।
২.১. এলিমেন্ট অ্যাক্সেস (Element Access)
লিস্টের কোনো নির্দিষ্ট উপাদান অ্যাক্সেস করতে আপনি ইনডেক্স ব্যবহার করতে পারেন। ইনডেক্সিং শুরু হয় ০ থেকে।
a: 1 2 3 4 5
element: a 2 / এলিমেন্ট ৩, কারণ ইনডেক্স ২ হল ৩এখানে a 2 মানে হল a লিস্টের তৃতীয় উপাদান (ইনডেক্স ২) এক্সেস করা, যা ৩।
২.২. লিস্টে নতুন উপাদান যোগ করা (Appending)
লিস্টে নতুন উপাদান যোগ করতে , (comma) অপারেটর ব্যবহার করা হয়।
a: 1 2 3 4 5
a: a, 6 7 / নতুন মান ৬ এবং ৭ যোগ করাএখানে, a লিস্টে নতুন উপাদান ৬ এবং ৭ যোগ করা হয়েছে।
২.৩. লিস্ট থেকে উপাদান মুছে ফেলা (Removing Elements)
একটি উপাদান লিস্ট থেকে মুছে ফেলার জন্য except বা delete ব্যবহার করা হয়।
a: 1 2 3 4 5
a: a except 3 / ৩ মুছে ফেলা হলোএখানে a except 3 মানে হল ৩ উপাদানটি a লিস্ট থেকে মুছে ফেলা।
২.৪. লিস্টে উপাদান আপডেট (Updating Elements)
লিস্টে একটি নির্দিষ্ট উপাদান পরিবর্তন করতে আপনি সরাসরি ইনডেক্স ব্যবহার করতে পারেন।
a: 1 2 3 4 5
a 2: 10 / ইনডেক্স ২ এর মান ১০ করা হলএখানে, a 2: 10 মানে ইনডেক্স ২ এর মান পরিবর্তন করে ১০ করা হয়েছে।
২.৫. লিস্টের আকার পাওয়া (Getting the Length of a List)
লিস্টের উপাদানের সংখ্যা বা আকার পেতে count ফাংশন ব্যবহার করা হয়।
a: 1 2 3 4 5
length: count a / ফলাফল: 5এখানে, count a হল লিস্ট a এর মোট উপাদানের সংখ্যা।
২.৬. লিস্টের উপাদানগুলি একসাথে যোগ করা (Summing the Elements)
লিস্টের সব উপাদান যোগ করতে sum ফাংশন ব্যবহার করা হয়।
a: 1 2 3 4 5
total: sum a / ফলাফল: 15এখানে, sum a লিস্টের সব উপাদান যোগ করে মোট ১৫ প্রদান করবে।
২.৭. ফিল্টারিং (Filtering)
লিস্টের উপাদানগুলির মধ্যে শর্ত দিয়ে ফিল্টার করা যায়। যেমন, শুধুমাত্র একটি নির্দিষ্ট শর্ত পূর্ণ করা উপাদানগুলো নির্বাচন করা।
a: 1 2 3 4 5
filtered: a where a > 2 / ফলাফল: 3 4 5এখানে, a where a > 2 লিস্ট a এর মধ্যে ২ এর বড় মানগুলি ফিল্টার করে।
২.৮. ম্যাপিং (Mapping)
লিস্টের প্রতিটি উপাদানের উপর কোন একটি ফাংশন প্রয়োগ করতে each ব্যবহার করা হয়।
a: 1 2 3 4 5
mapped: each (x * 2) a / ফলাফল: 2 4 6 8 10এখানে, each (x * 2) a মানে হল লিস্টের প্রতিটি উপাদানের উপর গুণফল ২ করা।
৩. মাল্টিডাইমেনশনাল লিস্ট (Multidimensional Lists)
Q ভাষায় আপনি মাল্টিডাইমেনশনাল লিস্টও তৈরি করতে পারেন। এটি এমন একটি লিস্ট যেখানে প্রতিটি উপাদানও নিজে একটি লিস্ট হতে পারে।
উদাহরণ:
matrix: (1 2 3; 4 5 6; 7 8 9) / একটি ৩x৩ ম্যাট্রিক্সএখানে, matrix একটি ৩x৩ আকারের ২-ডাইমেনশনাল লিস্ট।
আপনি প্রতিটি উপাদান অ্যাক্সেস করতে পারেন:
element: matrix 1 2 / ফলাফল: 6এখানে, matrix 1 2 হল দ্বিতীয় রো এবং তৃতীয় কলামের মান, যা ৬।
সারসংক্ষেপ
Q ভাষায় Lists এর মাধ্যমে আপনি একাধিক উপাদান পরিচালনা এবং ম্যানিপুলেট করতে পারেন। বিভিন্ন ধরনের অপারেশন যেমন যোগ, মুছে ফেলা, ফিল্টারিং, আপডেটিং এবং ম্যাপিং সহ আরও অনেক কাজ করা যায়। Lists এর মাধ্যমে ডেটার কার্যকরী বিশ্লেষণ এবং প্রক্রিয়াকরণ সহজ হয়, এবং মাল্টিডাইমেনশনাল লিস্টের মাধ্যমে জটিল ডেটা স্ট্রাকচারও তৈরি করা যায়।
Read more