Bird
Raised Fist0
DSA Pythonprogramming

Array Deletion at Beginning in DSA Python

Choose your learning style10 modes available
Mental Model
Removing the first item from a list means shifting all other items one step to the left.
Analogy: Imagine a line of people waiting to buy tickets. When the first person leaves, everyone else moves forward one step to fill the empty space.
Index:  [0] -> [1] -> [2] -> [3] -> null
Value:  10  ->  20  ->  30  ->  40  -> null
Dry Run Walkthrough
Input: array: [10, 20, 30, 40], delete element at beginning
Goal: Remove the first element and shift all others left to keep order
Step 1: Remove element at index 0 (value 10)
Index:  [0] -> [1] -> [2] -> [3] -> null
Value:  10  ->  20  ->  30  ->  40  -> null
Why: The first element is removed logically by shifting elements
Step 2: Shift element at index 1 (20) to index 0
Index:  [0] -> [1] -> [2] -> [3] -> null
Value:  20  ->  20  ->  30  ->  40  -> null
Why: Elements move left to fill the empty space at the start
Step 3: Shift element at index 2 (30) to index 1
Index:  [0] -> [1] -> [2] -> [3] -> null
Value:  20  ->  30  ->  30  ->  40  -> null
Why: Continue shifting elements left to maintain order
Step 4: Shift element at index 3 (40) to index 2
Index:  [0] -> [1] -> [2] -> [3] -> null
Value:  20  ->  30  ->  40  ->  40  -> null
Why: Last element moves left to fill the last empty spot
Step 5: Reduce array size by one, removing last duplicate
Index:  [0] -> [1] -> [2] -> null
Value:  20  ->  30  ->  40  -> null
Why: Array length decreases to reflect deletion
Result:
Index:  [0] -> [1] -> [2] -> null
Value:  20  ->  30  ->  40  -> null
Annotated Code
DSA Python
class Array:
    def __init__(self, elements):
        self.arr = elements
        self.size = len(elements)

    def delete_at_beginning(self):
        if self.size == 0:
            return  # Nothing to delete
        for i in range(1, self.size):
            self.arr[i - 1] = self.arr[i]  # Shift element left
        self.size -= 1  # Reduce size
        self.arr.pop()  # Remove last duplicate element

    def __str__(self):
        return ' -> '.join(str(self.arr[i]) for i in range(self.size)) + ' -> null'

# Driver code
array = Array([10, 20, 30, 40])
print("Before deletion:", array)
array.delete_at_beginning()
print("After deletion:", array)
if self.size == 0:
Check if array is empty to avoid errors
for i in range(1, self.size):
Loop through elements starting from second to shift left
self.arr[i - 1] = self.arr[i]
Move each element one position left
self.size -= 1
Decrease size to reflect deletion
self.arr.pop()
Remove last duplicate element after shifting
OutputSuccess
Before deletion: 10 -> 20 -> 30 -> 40 -> null After deletion: 20 -> 30 -> 40 -> null
Complexity Analysis
Time: O(n) because we shift all elements one position to the left
Space: O(1) because we modify the array in place without extra storage
vs Alternative: Compared to linked lists where deletion at beginning is O(1), array deletion requires shifting elements, making it slower
Edge Cases
empty array
No deletion occurs, array remains empty
DSA Python
if self.size == 0:
array with one element
After deletion, array becomes empty
DSA Python
self.size -= 1
When to Use This Pattern
When you need to remove the first item from a list and keep order, think of shifting elements left in an array.
Common Mistakes
Mistake: Not reducing the size after shifting, causing duplicate last element
Fix: Decrease size and remove last element after shifting
Mistake: Trying to delete from an empty array without check
Fix: Add a condition to check if array is empty before deletion
Summary
Deletes the first element of an array by shifting all other elements left.
Use when you need to remove the front item but keep the order of remaining items.
The key is shifting elements left and reducing the array size to avoid duplicates.

Practice

(1/5)
1. What happens to an array when you delete the first element in Python using del arr[0]?
easy
A. The first element is removed and the rest shift left by one position.
B. The last element is removed instead of the first.
C. The array becomes empty regardless of its size.
D. The array remains unchanged.

Solution

  1. Step 1: Understand del arr[0] operation

    This command removes the element at index 0, which is the first element of the array.
  2. Step 2: Effect on the array

    After deletion, all elements after the first shift one position to the left to fill the gap.
  3. Final Answer:

    The first element is removed and the rest shift left by one position. -> Option A
  4. Quick Check:

    Deleting first element shifts others left [OK]
Hint: Deleting index 0 removes first element and shifts left [OK]
Common Mistakes:
  • Thinking last element is removed
  • Assuming array becomes empty
  • Believing array stays the same
2. Which of the following is the correct syntax to delete the first element of a list named arr in Python?
easy
A. del arr(0)
B. del arr[0]
C. arr.delete(0)
D. arr.remove(0)

Solution

  1. Step 1: Check Python syntax for deleting by index

    Python uses del arr[index] to delete element at a specific index.
  2. Step 2: Analyze options

    del arr[0] uses correct syntax del arr[0]. del arr(0) uses parentheses which is invalid. arr.delete(0) uses a method that does not exist. arr.remove(0) removes by value, not index.
  3. Final Answer:

    del arr[0] -> Option B
  4. Quick Check:

    Use del with square brackets for index deletion [OK]
Hint: Use del with square brackets to delete by index [OK]
Common Mistakes:
  • Using parentheses instead of square brackets
  • Confusing remove() with delete by index
  • Trying to call a non-existent delete() method
3. What is the output of the following code?
arr = [10, 20, 30, 40]
del arr[0]
print(arr)
medium
A. [20, 30, 40]
B. [10, 20, 30]
C. [30, 40]
D. [10, 20, 30, 40]

Solution

  1. Step 1: Delete first element from array

    The command del arr[0] removes the element 10 at index 0.
  2. Step 2: Remaining elements shift left

    After deletion, the array becomes [20, 30, 40].
  3. Final Answer:

    [20, 30, 40] -> Option A
  4. Quick Check:

    First element removed, rest shifted left [OK]
Hint: Deleting index 0 removes first element, print rest [OK]
Common Mistakes:
  • Expecting first element to remain
  • Confusing deletion with removing last element
  • Printing original array without deletion
4. Find the error in the code below that tries to delete the first element of the list arr:
arr = [5, 10, 15]
arr.delete(0)
print(arr)
medium
A. The print statement is incorrect.
B. The index 0 is out of range.
C. The list is empty, so deletion fails.
D. The method delete() does not exist for lists.

Solution

  1. Step 1: Check list methods for deletion

    Python lists do not have a method called delete(). Deletion by index uses del keyword or pop() method.
  2. Step 2: Identify correct deletion method

    To delete first element, use del arr[0] or arr.pop(0). Using arr.delete(0) causes AttributeError.
  3. Final Answer:

    The method delete() does not exist for lists. -> Option D
  4. Quick Check:

    Use del or pop, not delete() [OK]
Hint: Lists have no delete() method; use del or pop [OK]
Common Mistakes:
  • Using delete() method on list
  • Assuming delete() works like in other languages
  • Ignoring AttributeError from wrong method
5. You have an array arr = [1, 2, 3, 4, 5]. You want to delete the first element and then add 0 at the beginning. Which code correctly does this in Python?
hard
A. arr.remove(0) arr.insert(0, 0) print(arr)
B. arr.pop(0) arr.append(0) print(arr)
C. del arr[0] arr.insert(0, 0) print(arr)
D. del arr[1] arr.insert(0, 0) print(arr)

Solution

  1. Step 1: Delete first element correctly

    Using del arr[0] removes the first element (1) from the array.
  2. Step 2: Insert 0 at the beginning

    Using arr.insert(0, 0) adds 0 at index 0, shifting others right.
  3. Step 3: Check other options

    arr.pop(0) arr.append(0) print(arr) appends 0 at the end, not beginning. arr.remove(0) arr.insert(0, 0) print(arr) tries to remove value 0 which is not in array. del arr[1] arr.insert(0, 0) print(arr) deletes second element, not first.
  4. Final Answer:

    del arr[0] arr.insert(0, 0) print(arr) -> Option C
  5. Quick Check:

    Delete first, then insert at start [OK]
Hint: Delete index 0, then insert new element at index 0 [OK]
Common Mistakes:
  • Appending instead of inserting at start
  • Removing value 0 instead of index 0
  • Deleting wrong index
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard