Python Lists MCQs (25)
Covers indexing & slicing, mutability, append/extend/insert, remove/pop, copy vs reference, list multiplication, sorting, comprehensions, nested lists, and pitfalls. Answers at the end
1) What prints?
lst = [10, 20, 30]
print(lst[1])
A. 10
B. 20
C. 30
D. IndexError
2) Slicing result?
lst = [0,1,2,3,4]
print(lst[1:4])
A. [1, 2, 3]
B. [1, 2, 3, 4]
C. [0, 1, 2, 3]
D. [2, 3, 4]
3) Negative index.
lst = ['a','b','c']
print(lst[-1])
A. a
B. b
C. c
D. IndexError
4) Append vs extend?
x = [1,2]; y = [3,4]
x.append(y)
print(x)
A. [1, 2, 3, 4]
B. [1, 2, [3, 4]]
C. [1, 2]
D. Error
5) Extend.
x = [1,2]; y = [3,4]
x.extend(y)
print(x)
A. [1, 2, [3, 4]]
B. [1, 2, 3, 4]
C. [1, 2]
D. Error
6) Insert effect.
lst = [1,3]
lst.insert(1, 2)
print(lst)
A. [1, 2, 3]
B. [1, 3, 2]
C. [2, 1, 3]
D. Error
7) Remove vs pop.
lst = [1,2,3,2]
lst.remove(2)
print(lst)
A. [1, 3, 2]
B. [1, 2, 3]
C. [1, 3]
D. Error
8) What does pop return?
lst = [10, 20, 30]
x = lst.pop()
print(x, lst)
A. 30 [10, 20]
B. 10 [20, 30]
C. None [10,20]
D. Error
9) Slice assignment.
lst = [0,1,2,3]
lst[1:3] = ['a','b','c']
print(lst)
A. [0, ‘a’, ‘b’, ‘c’, 3]
B. [0, ‘a’, ‘b’, 3]
C. [0, 1, 2, 3, ‘a’,’b’,’c’]
D. Error
10) Copy vs reference.
a = [1,2]
b = a
b.append(3)
print(a)
A. [1, 2]
B. [1, 2, 3]
C. Error
D. None
11) Shallow copy.
a = [[0],[1]]
b = a.copy()
b[0].append(9)
print(a[0])
A. [0]
B. [0, 9]
C. 0
D. Error
12) List multiplication pitfall.
m = [[0]] * 3
m[0][0] = 7
print(m)
A. [[7], [0], [0]]
B. [[7], [7], [7]]
C. [[0,7,0]]
D. Error
13) Correct way to get 3 independent inner lists?
m = [[0] for _ in range(3)]
m[0][0] = 7
print(m)
A. [[7],[0],[0]]
B. [[7],[7],[7]]
C. [[0,7,0]]
D. Error
14) Sorted vs sort.
lst = [3,1,2]
x = sorted(lst); y = lst.sort()
print(x, y, lst)
A. [1,2,3] None [1,2,3]
B. [1,2,3] [1,2,3] [1,2,3]
C. None [1,2,3] [3,1,2]
D. Error
15) Reverse order.
lst = [1,2,3]
lst.reverse()
print(lst)
A. [3, 2, 1]
B. [1, 2, 3]
C. None
D. Error
16) Comprehension filter & map.
print([n*n for n in range(5) if n % 2 == 1])
A. [1, 9]
B. [0, 4, 16]
C. [0,1,4,9,16]
D. []
17) Membership & count.
lst = [1,2,2,3]
print(2 in lst, lst.count(2))
A. False 1
B. True 1
C. True 2
D. False 2
18) index() when missing.
lst = [1,2,3]
print(lst.index(4))
A. 0
B. -1
C. ValueError
D. None
19) Join on list of strings.
parts = ["py","thon"]
print("-".join(parts))
A. py-thon
B. [‘py’,’thon’]
C. Error
D. (‘py’,’thon’)
20) But this join fails.
nums = [1,2,3]
print(",".join(nums))
A. 1,2,3
B. [‘1′,’2′,’3’]
C. TypeError
D. (no output)
21) Min/Max on mixed types (Py3)?
print(min([1, "2"]))
A. 1
B. “2”
C. TypeError
D. None
22) Deleting by slice.
lst = [0,1,2,3,4]
del lst[1:4:2]
print(lst)
A. [0,2,4]
B. [0,1,3,4]
C. [0,2,3,4]
D. [0,3,4]
23) Step slicing.
lst = [0,1,2,3,4,5]
print(lst[::2])
A. [0,2,4]
B. [1,3,5]
C. [5,4,3,2,1,0]
D. [2,4]
24) Reverse slice copy.
lst = [1,2,3]
rev = lst[::-1]
lst.append(4)
print(rev)
A. [3,2,1,4]
B. [3,2,1]
C. [1,2,3]
D. Error
25) Unpacking heads & tail.
lst = [1,2,3,4]
a, *mid, d = lst
print(a, mid, d)
A. 1 [2,3] 4
B. 1 [2] 4
C. 1 [2,3,4] 4
D. ValueError
Answer Key
1) B
2) A
3) C
4) B
5) B
6) A
7) A
8) A
9) A
10) B
11) B
12) B
13) A
14) A
15) A
16) A
17) C
18) C
19) A
20) C
21) C
22) C
23) A
24) B
25) A