On this page
Lists, tuples and dictionaries are where Class 11 Python stops being about single values. They are also where output questions get tricky, because two names can point at one list and some methods change data without returning anything. This post covers what the syllabus lists, explains the behaviour that decides most answers with code we have run in Python 3, and ends with a practice routine.
What does the syllabus say about lists, tuples and dictionaries?
The CBSE Computer Science curriculum for Class XI (2026-27) puts all three in Unit 2, Computational Thinking and Programming, worth 45 of the 70 theory marks. It lists indexing, concatenation, repetition, membership and slicing, traversal with loops, and named methods: for lists, append, extend, insert, count, index, remove, pop, reverse, sort and sorted, among others; for tuples, tuple assignment and nested tuples; for dictionaries, keys, values, items, get, update, del, clear, fromkeys, copy, pop, popitem and setdefault. The NCERT chapters are Lists and Tuples and Dictionaries. These topics come back in Class 12 as revision, so time spent now pays twice.
How do list indexing and slicing work?
With s = [10, 20, 30, 40, 50]:
s[1:4] is [20, 30, 40]. The end index is left out.
s[::-1] is [50, 40, 30, 20, 10].
s[-2:] is [40, 50].
For a nested list [[1, 2], [3, 4]], the item at [1][0] is 3.
Why does changing one list change another?
a = [3, 1, 2]
b = a
c = a[:]
b.append(4)
print(a, c) # [3, 1, 2, 4] [3, 1, 2]b = a does not copy anything. It gives the same list a second name, so appending through b changes a. The slice a[:] makes a new list, so c keeps the old values. NCERT's section on copying lists covers this, and it is behind many output questions.
Which list methods return None?
Methods that change a list in place return None.
a = [3, 1, 2, 4]
r = a.sort()
print(r, a) # None [1, 2, 3, 4]
print(sorted((9, 4, 6))) # [4, 6, 9]sort() sorts the list and returns None. sorted() returns a new list and works on any sequence, even a tuple. The same pattern catches students with append and extend:
L = [1, 2]; L.append([3, 4]) gives [1, 2, [3, 4]], length 3.
L = [1, 2]; L.extend([3, 4]) gives [1, 2, 3, 4], length 4.
What makes tuples different?
The Python tutorial states simply that tuples are immutable. t[0] = 9 raises a TypeError. Three more points to know:
The comma makes the tuple. (5) is just the integer 5. (5,) is a tuple with one item. The tutorial notes that "it is not sufficient to enclose a single value in parentheses".
A tuple can hold a list, and that list can still change: t = (1, [2, 3]); t[1].append(4) gives (1, [2, 3, 4]).
Tuple assignment swaps values in one line: x, y = y, x.
The 2026-27 CBSE Class 12 sample question paper asks what happens with (1, 2, 3) + [4, 5]. The answer is a TypeError, since a tuple can be joined only to another tuple.
How do dictionaries work?
A dictionary maps keys to values. Keys must be immutable, so a list cannot be a key.
marks = {"Asha": 82, "Ravi": 64}
marks["Meera"] = 91 # adds a new key
marks["Ravi"] = 70 # changes an existing one
print("Asha" in marks, 82 in marks, 82 in marks.values())
# True False True
for name, m in marks.items():
if m > 75:
print(name) # Asha, then Meerain checks keys, not values, which is the trap in the sample paper's question on 12 in a dictionary of prices. Since Python 3.7, the standard types documentation guarantees that a dictionary keeps insertion order, so items print in the order they were added.
The suggested practical of counting characters uses get:
freq = {}
for ch in "banana":
freq[ch] = freq.get(ch, 0) + 1
print(freq) # {'b': 1, 'a': 3, 'n': 2}pop("Ravi") removes that key and returns its value. popitem() removes and returns the last pair added.
What mistakes cost marks?
Treating b = a as a copy.
Writing print(a.sort()) and expecting a sorted list. It prints None.
append when you meant extend.
Forgetting the comma in a one-item tuple.
Testing a value with in on a dictionary. Use in d.values().
Using d[key] for a key that may be missing. It raises KeyError; d.get(key, 0) does not.
A practice routine for this unit
Predicting output is a skill you can practise on its own. Lister and colleagues tested novice programmers from seven countries and found many were weak at predicting what short code does.
Daily for a week: Write four lines using one structure, predict the output on paper, then run them. Keep a list of every wrong prediction.
Twice a week: Do one suggested practical, such as the dictionary of students with marks above 75.
Weekly: Mix list, tuple and dictionary questions in one timed set.
When a rule will not stick, the Fermi Concept Library covers every concept in computing, each with its own lesson. Strings follow many of the same slicing rules; see our guide to strings in Python for CBSE.
Start with the a, b and c example above: predict the two printed lists, then run it.



