মূল content-এ যাও

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 হলো একটা ক্রমানুসারে সাজানো সংগ্রহ, যেখানে অনেকগুলো মান একসাথে রাখা যায়:

main.py

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
main.py

List বদলানো যায় (mutable)

String-এর সাথে বড় পার্থক্য: list-এর item বদলানো যায়।

main.py
Methodকাজ
.append(x)শেষে যোগ
.insert(i, x)i position-এ যোগ
.remove(x)প্রথম x মুছে ফেলে
.pop()শেষেরটা বের করে আনে
.sort()মূল list sort করে
.copy()নতুন কপি বানায়

দরকারি Built-in Functions

main.py

সাবধান: একই list-এর দুই নাম

main.py

b = a কপি বানায় না — দুটো নাম একই list-কে নির্দেশ করে। ML-এ data preprocessing করতে গিয়ে এই ভুল অনেকে করে, আর মূল data নষ্ট হয়ে যায়।

Exercise

Exercise

Marks-এর হিসাব

+20 XP

marks = [72, 85, 90, 64, 78] দেওয়া আছে। নিচের variable-গুলো বানাও:

  • highest — সর্বোচ্চ মার্ক
  • lowest — সর্বনিম্ন মার্ক
  • average — গড় (মোট ÷ সংখ্যা)

Built-in function ব্যবহার করো, হাতে হিসাব করে মান বসিও না।

solution.py

Quiz

  1. Q1nums = [3, 1, 2]; nums.append(5) — এরপর nums কী?
  2. Q2sorted(nums) আর nums.sort()-এর পার্থক্য কী?
  3. Q3নিচের code-এর output কী?
    a = [1, 2, 3]
    b = a
    b.append(4)
    print(a)
    
0/3 answered

Challenge

Challenge

Train/Test split (হাতে বানানো)

+50 XP

ML-এ data-কে দুই ভাগ করা হয়: model শেখে train অংশ থেকে, আর পরীক্ষা হয় test অংশে।

data list-এর প্রথম ৮০% যাবে train-এ আর বাকি ২০% যাবে test-এ। Slicing ব্যবহার করো, আর ভাগের index len(data) থেকে হিসাব করো যাতে যেকোনো দৈর্ঘ্যের list-এ কাজ করে।

solution.py

বাস্তবে কোথায় ব্যবহার হয়?

তুমি challenge-এ যা বানালে, scikit-learn-এর train_test_split() function ঠিক সেটাই করে (সাথে data এলোমেলো করে নেয়)। আর training চলাকালে প্রতিটা epoch-এর loss সাধারণত একটা list-এ জমা রাখা হয়, পরে graph আঁকার জন্য:

main.py

Interview প্রশ্ন

  • Beginner: List আর tuple-এর পার্থক্য কী?
  • Intermediate: b = a আর b = a.copy()-এর পার্থক্য কী? Nested list-এ .copy() কি যথেষ্ট?
  • Advanced: List-এর শেষে append আর শুরুতে insert — কোনটার time complexity কত এবং কেন?

এরপর কী?

List-এ ১০০টা মান রাখলাম। এখন প্রতিটার ওপর একই কাজ করতে চাই — হাতে ১০০ লাইন লিখে না। পরের lesson: Loops।