📋
Basics

Lists

Python Ka Dynamic Array
💡 List ek elastic shopping bag jaisa hai — kuch bhi daal sakte ho (fruits, numbers, aur cheezein sab ek saath), aur jaise-jaise items daalte jao, bag khud bada hota jaata hai.

List Python ka sabse common data structure hai — [] se banti hai, dynamically resizable hai (C++ ke vector jaisa), aur DIFFERENT types ki values ek saath rakh sakti hai (C/Java ke arrays ke ulat, jo sirf ek type allow karte hain).

Common operations: append() (end mein add), remove() (value se remove), pop() (index se remove aur return), len() (size), aur slicing (list[1:3]) — ek range ka sub-list nikalna, bahut powerful feature.

fruits = ["apple", "banana", "cherry"]

fruits.append("date")       # end mein add
print(fruits)                 # ['apple', 'banana', 'cherry', 'date']

fruits.remove("banana")     # value se remove
print(len(fruits))            # 3

print(fruits[0])             # "apple"
print(fruits[-1])            # "date" — negative index = end se

print(fruits[0:2])           # ['apple', 'cherry'] — slicing
📋
List ek elastic shopping bag jaisa hai — kuch bhi daal sakte ho (fruits, numbers, aur cheezein sab ek saath), aur jaise-jaise items daalte jao, bag khud bada hota jaata hai.
1 / 2
⚡ झट से Recap
  • [] se list banti hai, dynamically resizable
  • Different types ek saath rakh sakti hai
  • Negative indexing (-1 = last) aur slicing (list[1:3]) powerful features
इस page में (2 subtopics)

Slicing syntax list[start:stop:step] bahut powerful hai — negative indices, step values (jaise har doosra element), aur list ko reverse karna sab isi se ho jaata hai.

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(nums[2:5])     # [2, 3, 4]
print(nums[::2])      # [0, 2, 4, 6, 8] — har doosra element
print(nums[::-1])     # reversed list!
print(nums[-3:])      # [7, 8, 9] — last 3 elements
💡Tip: nums[::-1] poori list ko reverse karne ka sabse Pythonic tareeka hai — koi reverse() function call ki bhi zaroorat nahi, sirf slicing.

sort() list ko in-place modify karta hai (original badal jaati hai, kuch return nahi karta). sorted() ek NAYI sorted list return karta hai, original ko touch nahi karta — kisi bhi iterable (list, tuple, string) par kaam karta hai.

nums = [3, 1, 4, 1, 5]

nums.sort()              # original modify hoti hai
print(nums)                # [1, 1, 3, 4, 5]

nums2 = [3, 1, 4]
result = sorted(nums2)   # naya list return hota hai
print(nums2)                # [3, 1, 4] — unchanged!
print(result)               # [1, 3, 4]
💡Tip: Agar original list preserve karni hai, sorted() use karo. Agar original ko hi sort karna hai (aur memory bachani hai), sort() use karo.