1.2.21 · HinglishIntroduction to Programming (Python)

Lists — creation, indexing, slicing, mutability

2,082 words9 min readRead in English

1.2.21 · Coding › Introduction to Programming (Python)


WHAT is a list?

WHY does a list exist? Single variables ek value hold karte hain. Jis moment aapke paas bahut saari related values ho jaati hain (30 students ke scores, ek row mein pixels), tab aapko ek aisa container chahiye jo unhe order mein rakhe aur kisi ek ko position se grab karne de. Yahi exactly ek list hai.


HOW indexing works (and WHY it starts at 0)

 list:     a[0]   a[1]   a[2]   a[3]
 letters: ['p',   'y',   't',   'h']
 forward:   0      1      2      3
 backward: -4     -3     -2     -1

HOW slicing works


HOW mutability works (woh part jo logon ko bite karta hai)


Figure — Lists — creation, indexing, slicing, mutability

Forecast-then-Verify


80/20 — woh 20% jo aap constantly use karte ho

  • a[i] ek box read/write karo · a[i:j] slice (copy) · a[:] full copy
  • negative indices end se count karte hain · slicing kabhi bhi bad range par raise nahi karta
  • lists mutable hain; = share karta hai, [:]/.copy()/list() copy karte hain
  • append mutate karta hai & None return karta hai; + ek naya list banata hai

Flashcards

List literal kaunsa symbol banata hai?
Square brackets [] comma-separated items ke saath.
Indexing 0 se kyun start hoti hai?
Ek index ek offset (start se distance) hai; pehla item 0 steps door hai.
Length n ke liye a[-k] ko positive index mein convert karo.
a[n-k] (toh a[-1]=a[n-1]).
a[start:stop:step] kya include karta hai?
start se lekar lekin stop ko include NAHI karta, step se stepping karta hai; ek NEW list return karta hai.
Slice a[start:stop] ki length?
stop - start (jab dono range mein ho).
a[::-1] kya karta hai aur kyun?
List ko reverse karta hai; step -1 end se start tak walk karta hai.
Kya out-of-range slice error raise karta hai?
Nahi — slices valid range mein clamp ho jaate hain; sirf single-index access IndexError raise karta hai.
Lists ke mutable hone ka matlab kya hai?
Unki contents naya object banaye bina in place change ho sakti hain (jaise a[0]=9, a.append()).
b = a; b[0]=9 ke baad, a[0] kya hai?
9b aur a SAME list ke do naam hain.
List a ki independent copy kaise banate ho?
a[:], a.copy(), ya list(a) (shallow copy).
a.append(x) kya return karta hai?
None (yeh in place mutate karta hai); kabhi a = a.append(x) mat likho.
a.append(x) aur a = a + [x] mein kya fark hai?
append existing list edit karta hai; + ek brand-new list banata hai aur naam ko rebind karta hai.

Recall Feynman: 12-saal ke bachche ko explain karo

Ek list ek hallway mein numbered lockers ki row hai. Pehla locker number 0 hai (yeh "0 steps in" hai). Aap koi bhi locker uske number se khol sakte ho aur andar naya kuch rakh sakte ho — yahi "mutable" hai, lockers rahte hain lekin unka saman badal sakta hai. Ek slice aisa hai jaise kehna "mujhe lockers 2 se lekar lekin 5 include kiye bina do" — aap un cheezon ki copies ek chote bag mein paate ho. Aur agar aap apne dost ko usi hallway ka map de do (b = a), jab woh kisi locker ka saman badlein, aapke lockers bhi change ho jaate hain, kyunki woh same hallway thi. Apni private hallway lene ke liye, aap a[:] se sab kuch photocopy karo.

Connections

  • Strings — indexing & slicing (same offset/half-open rules, lekin strings immutable hain)
  • Tuples (lists ki tarah ordered lekin immutable)
  • List methods — append, insert, pop, sort
  • Shallow vs Deep copy (a[:] list copy karta hai lekin nested lists ko nahi)
  • for loops (list items par iterate karna)
  • Mutability & function arguments (lists ko functions mein pass karna original ko edit karta hai)

Concept Map

written with

items can be

position matters

editable in place

access by

is an

first box is

from the end

identity

extract range

returns

half-open rule

gives

List: ordered mutable container

Square brackets and commas

Any or mixed types

Ordered

Mutable

Indexing

Offset from start

Index 0

Negative index

a of minus k equals a of n minus k

Slicing start stop step

New list

stop excluded

Length equals stop minus start