String Slicing in Python – Explained with Examples

Updated on July 26, 2024

Article Outline

Ever struggled with getting specific parts out of a long string? Want to know the best way to chop up strings in Python? String slicing is the answer.

 

String slicing in Python is fundamental for any programmer, and therefore it is important that anyone who will be developing software in Python must learn it. Whether it is a text-processing problem or a data-mining problem, or any problem that involves strings, the exact or efficient method of selecting and manipulating strings is vital.

 

There are two methods of string slicing:

 

  1. Using the slice() Method
  2. Using the Array Slicing [::] Method

 

In this article, we will first understand what string slicing in Python is, and then we will understand how to use it in Python. We will begin with the simplest types of working with strings, such as indexes, and cover different methods of slicing with examples.

The Basics of String Indexing

Before diving into the concept of String slicing, first we need to understand what string indexing is.

 

A string is nothing but a sequence of characters when each character has a special position or index. We can mark indexing in a string in two ways: positive indexing and negative indexing.

 

Let’s break it down:

 

  • Positive Indexing: They start at 0 and go through the lengths of the string and come up with the number – 1. For instance, ‘P’ of the string ‘Python’ would be referred to as index 0 while ‘y’ would be index 1 and so on.

 

Let’s break it down:

 

  • Positive Indexing: The first character is marked as zero (0). For example, in the string “Python”, ‘P’ is at index 0, ‘y’ at index 1, and so on.
text = "Python" print(text[0])  # Output: P print(text[1])  # Output: y
  • Negative Indexing: Starts from -1 for the last character and goes backwards. For example, in the string “Python”, ‘-1’ refers to ‘n’, ‘-2’ to ‘o’, and so forth.
text = "Python" print(text[-1])  # Output: n print(text[-2])  # Output: o

[n:] vs [:n]

  • [n:]-> Start at the beginning and go up to, but not including, index n.
  • [:n]-> Start at index n and go to the end.
*Image
Get curriculum highlights, career paths, industry insights and accelerate your technology journey.
Download brochure

Using the slice() Method

The slice() method creates a slice object, which we can use to specify the start, stop, and step of the slice.

  • start: The starting index of the slice.
  • stop: The index where the slice stops (not included).
  • step: The step size (default is 1).

Here’s the syntax:

  • slice(stop)
  • slice(start, stop, step)

Let’s see it in action. We’ll use the string “HelloWorld”.

text = "HelloWorld" s1 = slice(5)  # Equivalent to text[:5] s2 = slice(2, 8, 2)  # text[2:8:2] print(text[s1])  # Output: Hello print(text[s2])  # Output: loW

Output Explanation

 

slice(5)

 

  • slice(5): This creates a slice object that starts at the beginning of the string and goes up to, but does not include index 5.
  • text[s1]: Equivalent to text[:5], which means “take characters from the start of the string up to, but not including, index 5”.

 

Let’s look at the string text = “HelloWorld”:

 

Index: 0 1 2 3 4 5 6 7 8 9
String: H E E L O W O R L D

 

When we apply text[:5], we get the first five characters:

 

text[:5] = “Hello”

 

So, print(text[s1]) outputs Hello.

 

slice(2, 8, 2)

 

  • slice(2, 8, 2): This creates a slice object that starts at index 2, stops before index 8, and takes every second character (step size of 2).
  • text[s2]: Equivalent to text[2:8:2], which means “start at index 2, go up to, but not including, index 8, and take every second character”.

 

When we apply text[2:8:2], we get the characters at indices 2, 4, and 6:

 

  • Index 2: l
  • Index 4: o
  • Index 6: W

 

So, text[2:8:2] results in: “loW”

 

Therefore, print(text[s2]) outputs loW.

Using the Array Slicing [::] Method

Python’s array slicing syntax [start:stop:step] is a shorthand way to perform slicing. It does the same thing as slice() but is easier to read and write.

 

Let’s rewrite the previous examples using this method:

text = "HelloWorld" print(text[:5])  # Output: Hello print(text[2:8:2])  # Output: loW

Examples of String Slicing in Python

When working with strings in Python, we often need to extract specific parts. String slicing helps us do that efficiently.

 

Here are some practical examples that showcase the power of string slicing in Python.

 

Example 1: Slicing the first few characters

 

Suppose we have the string “LearningPython“. We want to extract just “Learning”.

text = "LearningPython" print(text[:8])  # Output: Learning

Example 2: Slicing from the middle

Now, let’s extract “Python” from the same string.

text = "LearningPython" print(text[8:])  # Output: Python

Advanced Slicing with Steps

Sometimes, we need to skip characters while slicing. This is where the step value becomes useful.

Example 3: Skipping characters

Consider the string “PythonProgramming”. We want to skip every second character.

text = "PythonProgramming" print(text[::2])  # Output: PtoPormig

Example 4: Using start, stop, and step

What if we want to start from the second character, end at the tenth, and skip every second character?

text = "PythonProgramming" print(text[1:10:2])  # Output: yhnP

Using Negative Indexes for String Slicing

Negative indexing allows us to slice strings from the end.

Example 5: Slicing with negative indexes

Let’s take the string “HelloWorld” and get the last five characters.

text = "HelloWorld" print(text[-5:])  # Output: World

Example 6: Combining negative indexes and steps

We can also combine negative indexes with steps. Suppose we want every second character from the last five characters.

text = "HelloWorld" print(text[-5::2])  # Output: Wrd

Reversing Strings with Slicing

Reversing a string is straightforward with slicing.

Example 7: Reversing a string

Let’s reverse the string “Python”.

text = "Python" print(text[::-1])  # Output: nohtyP

Example 8: Reversing a specific part

Suppose we want to reverse only the first six characters of “PythonProgramming”.

text = "PythonProgramming" print(text[:6][::-1])  # Output: nohtyP

Applying String Slicing on Lists and Tuples

String slicing isn’t limited to strings. We can use the same techniques on lists and tuples. This is especially useful when we need to work with parts of a collection.

Example 1: Slicing a list

Let’s take a list of numbers and slice it.

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(numbers[2:8])  # Output: [2, 3, 4, 5, 6, 7]

Example 2: Slicing with steps in a list

We can also use steps to skip elements in a list.

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(numbers[1:9:2])  # Output: [1, 3, 5, 7]

Example 3: Slicing a tuple

Tuples work just like lists when it comes to slicing.

letters = ('a', 'b', 'c', 'd', 'e', 'f', 'g') print(letters[1:5])  # Output: ('b', 'c', 'd', 'e')

Example 4: Slicing with negative indexes in a tuple

We can also use negative indexes in tuples.

letters = ('a', 'b', 'c', 'd', 'e', 'f', 'g') print(letters[-5:-1])  # Output: ('c', 'd', 'e', 'f')

Example 5: Reversing a list with slicing

Reversing works for lists and tuples, too.

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(numbers[::-1])  # Output: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

Conclusion

String slicing in Python is one of the most versatile features which makes many tasks easier and convenient. In this blog, we learnt about string slicing in Python, touching on the basic concept of indexing, different types of slicing, and even examples.

 

We learned how to slice strings, lists, and tuples, as well as use steps and reverse strings. String slicing can thus be described as a very useful tool for data handling.

 

To be specific, these techniques help us manage most tasks better. Keep practising to harness the full power of string slicing in your coding projects.

FAQs
  • The slice() method creates a slice object that can be used in any sequence.
  • Array slicing [::] is a shorthand specific to sequences like lists and strings.
  • Yes, negative indices can be used to access elements from the end of the string or sequence.
  • If the start index is greater than the stop index, Python will return an empty string or sequence.
  • Yes, string slicing can be applied to any sequence type, including lists, tuples, and ranges.
  • No, strings in Python are immutable. Slicing can create new strings, but it cannot modify the original string.

Updated on July 26, 2024

Link
left dot patternright dot pattern

Programs tailored for your success

Popular

Management

Data Science

Finance

Technology

Future Tech

Upskill with expert articles

View all
Hero Vired logo
Hero Vired is a leading LearnTech company dedicated to offering cutting-edge programs in collaboration with top-tier global institutions. As part of the esteemed Hero Group, we are committed to revolutionizing the skill development landscape in India. Our programs, delivered by industry experts, are designed to empower professionals and students with the skills they need to thrive in today’s competitive job market.
Blogs
Reviews
Events
In the News
About Us
Contact us
Learning Hub
18003093939     ·     hello@herovired.com     ·    Whatsapp
Privacy policy and Terms of use

|

Sitemap

© 2024 Hero Vired. All rights reserved