Python for AI/Python শুরু/Lesson 07
Lists
অনেকগুলো মান এক জায়গায় — list তৈরি, indexing, slicing, append, sort আর len/sum/max। Dataset-এর প্রথম রূপ।
- সময়
- 20 মিনিট
- Exercise
- 1
- Challenge
- 1
- Quiz
- 3 প্রশ্ন
সহজ ভাষায়
এখন পর্যন্ত একটা variable-এ একটাই মান রেখেছি। কিন্তু ১০০ জন student-এর marks রাখতে ১০০টা variable? না! List হলো একটা ক্রমানুসারে সাজানো সংগ্রহ, যেখানে অনেকগুলো মান একসাথে রাখা যায়:
Square bracket [ ], ভেতরে comma দিয়ে আলাদা করা মান।
কেন দরকার?
Dataset আসলে কী? অনেকগুলো data point-এর সংগ্রহ। List হলো Python-এ data সংগ্রহ রাখার সবচেয়ে মৌলিক উপায়। পরে NumPy array আর Pandas DataFrame শিখব — সেগুলো list-এরই অনেক শক্তিশালী রূপ।
Indexing ও Slicing
String-এর মতোই — index 0 থেকে শুরু:
marks = [ 72, 85, 90, 64, 78 ]
index: 0 1 2 3 4
-5 -4 -3 -2 -1
List বদলানো যায় (mutable)
String-এর সাথে বড় পার্থক্য: list-এর item বদলানো যায়।
| Method | কাজ |
|---|---|
.append(x) | শেষে যোগ |
.insert(i, x) | i position-এ যোগ |
.remove(x) | প্রথম x মুছে ফেলে |
.pop() | শেষেরটা বের করে আনে |
.sort() | মূল list sort করে |
.copy() | নতুন কপি বানায় |
দরকারি Built-in Functions
সাবধান: একই list-এর দুই নাম
b = a কপি বানায় না — দুটো নাম একই list-কে নির্দেশ করে। ML-এ data preprocessing করতে গিয়ে এই ভুল অনেকে করে, আর মূল data নষ্ট হয়ে যায়।
Exercise
Exercise
Marks-এর হিসাব
marks = [72, 85, 90, 64, 78] দেওয়া আছে। নিচের variable-গুলো বানাও:
highest— সর্বোচ্চ মার্কlowest— সর্বনিম্ন মার্কaverage— গড় (মোট ÷ সংখ্যা)
Built-in function ব্যবহার করো, হাতে হিসাব করে মান বসিও না।
Quiz
Challenge
Challenge
Train/Test split (হাতে বানানো)
ML-এ data-কে দুই ভাগ করা হয়: model শেখে train অংশ থেকে, আর পরীক্ষা হয় test অংশে।
data list-এর প্রথম ৮০% যাবে train-এ আর বাকি ২০% যাবে test-এ। Slicing ব্যবহার করো, আর ভাগের index len(data) থেকে হিসাব করো যাতে যেকোনো দৈর্ঘ্যের list-এ কাজ করে।
বাস্তবে কোথায় ব্যবহার হয়?
তুমি challenge-এ যা বানালে, scikit-learn-এর train_test_split() function ঠিক সেটাই করে (সাথে data এলোমেলো করে নেয়)। আর training চলাকালে প্রতিটা epoch-এর loss সাধারণত একটা list-এ জমা রাখা হয়, পরে graph আঁকার জন্য:
Interview প্রশ্ন
- Beginner: List আর tuple-এর পার্থক্য কী?
- Intermediate:
b = aআরb = a.copy()-এর পার্থক্য কী? Nested list-এ.copy()কি যথেষ্ট? - Advanced: List-এর শেষে append আর শুরুতে insert — কোনটার time complexity কত এবং কেন?
এরপর কী?
List-এ ১০০টা মান রাখলাম। এখন প্রতিটার ওপর একই কাজ করতে চাই — হাতে ১০০ লাইন লিখে না। পরের lesson: Loops।