Lesson 05 — Foundation
EK VALUE NAHI.
POORA COLLECTION.
Aapke paas sirf ek learner nahi, learners ki list hai. Ek task nahi, daily tasks hain. List ordered, mutable collection hai — yani values ki sequence jise aap later change kar sakte ho.
Masala Daani samjho: dabba = variable (container ka naam)
Ek dabba (variable) ke andar 4 dibbi — aur har dibbi me wahi 5 masale: string, int, float, complex, bool. Aage har lesson apni dibbi khol kar dikhayega.
WHAT: list square brackets mein banti hai
skills = ["Python", "SQL", "Pandas"]
print(skills[0]) # Python
print(len(skills)) # 3Index stable hota hai: first item index 0 par.
Item add, update aur remove kar sakte ho.
Technically mixed types possible hain; practical code mein consistent types rakho.
WHEN: collection ko update karna
append() end mein add karta hai; remove() matching value ko hatata hai; pop() index se item nikalta hai. Production code mein item exists karta hai ya nahi, woh check karna bhi zaruri hota hai.
tasks = ["Variables revise", "Strings practice"]
tasks.append("Lists exercise")
tasks[0] = "Variables project"
print(tasks)
# ['Variables project', 'Strings practice', 'Lists exercise']WHERE: simple task tracker
List aapke first mini-project ka building block hai. Abhi loop complete nahi hua, fir bhi aap collection ko create/update aur display kar sakte ho.
Useful list operations
items.sort()mutates the list;sorted(items)new sorted list deta hai.items[:2]slicing ke saath first two items deta hai."Python" in skillsmembership check karta hai.- Nested list tab use hoti hai jab collection ke andar collection ho; soon matrices aur tabular data se connect karoge.
Quick check
Do strings ai aur ml wali Python list likho.
List square brackets se banti hai aur text ko quotes chahiye.
Access karna: index se nikalo
Har item ka number (index) hota hai — 0 se start. Aakhri item -1 se milta hai, aur tukda [1:3] se. Range ka end include nahi hota.
fruits = ["aam", "kela", "seb", "angoor"]
print(fruits[0]) # aam
print(fruits[-1]) # angoor (aakhri)
print(fruits[1:3]) # [kela, seb] (3 include nahi)
print(len(fruits)) # 4
print("seb" in fruits) # TrueAdd karna: teen tareeke
End me jodna ho to append(), beech me insert(), poori list milani ho to extend(). Teenon ki jagah fix hai.
cart = ["doodh"]
cart.append("bread") # end me
cart.insert(0, "anda") # shuru me
cart.extend(["makkhan", "chai"]) # poori list
print(cart)Remove karna: value, index ya sab
Value pata ho to remove(), position pata ho to pop() (wapas bhi deta hai!), index range udana ho to del, sab saaf karna ho to clear().
cart = ["anda", "doodh", "bread", "makkhan"]
cart.remove("doodh") # value se
nikala = cart.pop(0) # index se + wapas
print(nikala, cart)
del cart[0] # index uda do
cart.clear() # khaali
print(cart) # []Loop chalana: har item par kaam
List ka asli power loop me hai — har item par same kaam. Index bhi chahiye to enumerate(), chhota kaam ho to comprehension ek line me.
marks = [72, 91, 65]
for m in marks:
print(m + 5) # grace marks
for i, m in enumerate(marks):
print(i, m)
naye = [m + 5 for m in marks]
print(naye)Sort karna: order lagao
Marks ki list ho ya naam — sort() chhota-se-bada lagata hai. Yaad rakho: sort() kuch wapas nahi deta (None), list andar hi badal jati hai. Bina badle nayi sorted list chahiye to sorted().
marks = [72, 91, 65]
marks.sort()
print(marks) # [65, 72, 91]
names = ["Ramesh", "Aman"]
print(sorted(names, reverse=True)) # ulte order me, original sameCopy aur join: do list ek saath
b = a copy NAHI hai — dono same list ko pakadte hain! Asli copy a.copy() se banti hai. Do list jodne ke liye + ya extend().
a = [1, 2]
b = a
b.append(3)
print(a) # [1, 2, 3] — a bhi badal gaya!
c = a.copy()
c.append(4)
print(a, c) # [1, 2, 3] [1, 2, 3, 4]
full = [1, 2] + [3, 4]
print(full) # [1, 2, 3, 4]Methods quick table
| Method | Kya karta hai | Example |
|---|---|---|
append(x) | End me jodna | a.append(5) |
insert(i, x) | Beech me dalna | a.insert(0, 5) |
remove(x) | Value se hatana | a.remove(5) |
pop(i) | Index se nikalna | a.pop() |
clear() | Khaali karna | a.clear() |
index(x) | Position dhoondhna | a.index(5) |
count(x) | Ginti karna | a.count(5) |
sort() | Order lagana | a.sort() |
reverse() | Ulta karna | a.reverse() |
copy() | Asli copy | b = a.copy() |
extend(list) | Poori list jodna | a.extend(b) |
Quick check
[10, 20, 30] me kitne items hain? len() use karo.
len() list ki lambai deta hai — gin kar likho.
append() mostly O(1) hai. Ye design C-python ki raftaar ka raaz hai.# Unpythonic: khaali list me loop se bharna
squares = []
for i in range(5):
squares.append(i * i)
# Pythonic: comprehension
squares = [i * i for i in range(5)]
print(squares) # [0, 1, 4, 9, 16]MNC tip: Comprehension vs loop — dono likhna aana chahiye, padhna comprehension aani chahiye.
Common mistakes
- Invalid index: list ke 3 items hain to
items[3]error karega; last valid index 2 hai. remove()missing item ke saath error deta hai — external input par check karna seekho.sort()ka result variable mein assign mat karo; woh list ko in-place change karta hai aurNonereturn karta hai.sort()kuch wapas nahi deta —marks = marks.sort()likhoge tomarksmeNoneaa jayega.b = acopy nahi hai — asli copya.copy()se banao.
Ab program ko data ke basis par decisions lena sikhate hain.