What will be the output of the following Python code? a = (1,2,3,4,5)…
2024
What will be the output of the following Python code?
a = (1,2,3,4,5)
print(a[-4:-1])
- A.
(2, 3, 4)
- B.
(3, 4, 5)
- C.
(2, 3, 4, 5)
- D.
(1, 2, 3)
- E.
(3, 4)
Attempted by 8 students.
Show answer & explanation
Correct answer: A
Concept
A Python slice seq[start:stop] returns the items from index start up to but NOT including index stop — the stop index is exclusive. A negative index counts from the end, where -1 is the last element, -2 the second-last, and so on.
Application
For the tuple a = (1, 2, 3, 4, 5), map each negative index to its element:
Negative index | Element |
|---|---|
-5 | 1 |
-4 | 2 |
-3 | 3 |
-2 | 4 |
-1 | 5 |
The slice
a[-4:-1]starts at index -4, which is the element 2.It collects elements while moving forward toward the stop index -1, covering indices -4, -3 and -2.
It stops BEFORE index -1, so the element at -1 (the value 5) is excluded.
The collected elements are those at -4, -3, -2, i.e. 2, 3 and 4.
Therefore print(a[-4:-1]) outputs the tuple (2, 3, 4).
Cross-check
The same slice can be read with the equivalent positive indices. For this 5-element tuple, -4 corresponds to index 1 and -1 corresponds to index 4, so a[-4:-1] is the same as a[1:4]. A positive-index slice a[1:4] also takes indices 1, 2 and 3 while excluding index 4, giving the same result. Both readings agree.