Back to Python Notes
Topic #244

Array Slicing

By the end of this lesson, you will be able to extract specific sub-sequences from Python lists using slice notation, understanding how start and stop indices define the range.

What it is

Slicing is a powerful feature in Python that allows you to create a new list containing a subset of elements from an original list. It relies on the concept of indices, which are integer positions assigned to each element in a sequence. The mental model for slicing is "start at index X, go up to (but do not include) index Y." This operation does not modify the original list; instead, it returns a shallow copy of the selected portion. Related terms include sequence types (like strings and tuples), step values, and negative indexing.

Why it matters

  • Data Cleaning: Quickly remove header or footer rows from datasets stored as lists.
  • Algorithm Implementation: Essential for divide-and-conquer algorithms like Merge Sort, where arrays must be split into halves.
  • Text Processing: Extract substrings from larger text blocks without complex loop logic.
  • Readability: Provides a concise, Pythonic way to access ranges compared to verbose loops.

Syntax or steps

The basic syntax for slicing a list named my_list is:

my_list[start:stop]

Here is how the parameters work:

  1. start: The index where the slice begins. If omitted, it defaults to 0.
  2. stop: The index where the slice ends. The element at this index is excluded. If omitted, it defaults to the length of the list.
  3. step (optional): A third parameter [start:stop:step] determines the interval between elements.

Example

Consider a list of numbers representing daily temperatures:

temperatures = [72, 75, 68, 71, 79, 80]

# Extract days 2 through 4 (indices 1 to 3)
mid_week = temperatures[1:4]

print(mid_week)

Output:

[75, 68, 71]

Explanation:

  • temperatures[1:4] starts at index 1 (value 75).
  • It continues until index 4 is reached, but stops before including it.
  • Therefore, indices 1, 2, and 3 are included in the result.

Common mistakes

  • Including the stop index: Beginners often expect a[1:4] to include the item at index 4. Remember: the stop index is exclusive.
  • IndexError with out-of-bounds slices: Unlike direct indexing (a[100]), slicing (a[100:200]) rarely raises an error if the start is beyond the list length; it simply returns an empty list. However, negative steps require careful handling of start/stop order.
  • Confusing assignment vs. creation: Writing a[1:3] = [99] modifies the original list by replacing those elements. To keep the original intact, always assign the slice to a new variable: b = a[1:3].
  • Forgetting default values: Using a[:3] is valid and means "from beginning to index 3." Using a[3:] means "from index 3 to end."

When to use it

Slicing is preferred over manual looping when extracting contiguous ranges. Use itertools.islice() for iterators or very large data streams where memory efficiency is critical, as standard slicing creates a new list in memory.

Method Best For Memory Impact
List Slicing list[a:b] Small to medium lists, quick extraction Creates a new list (O(k) space)
Looping for i in range(a,b) Processing elements one-by-one without copying No extra list created

Practice

Guided Exercise: Given words = ["apple", "banana", "cherry", "date"], write code to extract only "banana" and "cherry".

Challenge: How would you reverse the entire list words using only slicing syntax?

Hint for Challenge: Use the step parameter with a value of -1.

Quick check

Question: What is the result of [10, 20, 30, 40][1:3]?

Answer: [20, 30]. Index 1 is 20, index 2 is 30, and index 3 (40) is excluded.

Summary

Python array slicing provides a concise, readable method for extracting sub-ranges from sequences using the [start:stop] syntax. Mastering the exclusive nature of the stop index and the flexibility of default parameters is key to writing efficient and bug-free data manipulation code.

Want to go beyond the notes?

Join Coding Now Tech Institute's Python course — live mentorship, real projects, and 100% placement support.

Enroll Now — Free Demo Available

Array Slicing – FAQs

Quick answers about learning Array Slicing in Python.

This free note from Coding Now Tech Institute explains Array Slicing in Python — concept, syntax and worked code examples you can copy, run and revise before interviews.
Yes. Every Python topic on Coding Now Tech Institute, including Array Slicing, is 100% free with no signup required.
With focused practice, most students grasp Array Slicing in 1–3 days from these notes; pairing it with Coding Now Tech Institute's mentor-led course takes you to job-ready depth faster.
Use the code examples in this note, then ask doubts for free on the Coding Now Tech Institute Community (/community) — expert instructors answer within 24 hours.
Call NowEnroll Now