DEV Community

Cover image for String Slicing in Python, Explained
Bala Priya C
Bala Priya C

Posted on • Edited on • Originally published at balapriyac.hashnode.dev

3 1

String Slicing in Python, Explained

String slicing lets you slice into Python strings, and work with their slices, or substrings—instead of the whole string.

As strings in Python are immutable, you cannot change them in place. In this tutorial, you'll learn to slice Python strings and work with substrings.


Python String Slicing Syntax

<str>[start:stop:step]
Enter fullscreen mode Exit fullscreen mode

The above line of code:

  • Returns a slice of the string <str>—starting at index start, extending up to stop-1 in steps of step.
  • The start index is optional: the slice starts from the beginning of the string by default.
  • The stop index is also optional: the slice extends up to the end of the string by default.
  • The step value is optional too. The default value of step is 1 and includes all characters in the string.

Python String Slicing Example

my_str = "Python3"
Enter fullscreen mode Exit fullscreen mode

▶ Let's use enumerate() and examine the characters at each index in the string.

for idx,char in enumerate(my_str):
  print(f"At index {idx}: letter {char}")

# Output
At index 0: letter P
At index 1: letter y
At index 2: letter t
At index 3: letter h
At index 4: letter o
At index 5: letter n
At index 6: letter 3
Enter fullscreen mode Exit fullscreen mode

In the above code, you've used the enumerate() function in conjunction with the for loop. This lets you loop through iterables, and access items along with their indices simultaneously—without having to use the range() function to get the indices.

▶ Let's now use string slicing.

# With `start` and `stop` indices
print(my_str[1:6])
# Output: ython

# Without `stop` index
print(my_str[1:])
# Output: ython3

# Without `start` index
print(my_str[:5])
# Output: Pytho

# With `step = 2`, slice includes every second character
print(my_str[::2])
# Output: Pto3

# Without `start`, `stop` and `step`: slice is entire string
print(my_str[::])
# Output: Python3
Enter fullscreen mode Exit fullscreen mode

Python String Slicing with Negative Step

When you set step to a negative value, you can get slices starting from the end of the string—reverse substrings.

If step = -1 you get a slice starting from the end of the string, and including every character.

This can be super handy when you'd like to reverse a string, like this:

print(my_str[::-1])

# Output: 3nohtyP
Enter fullscreen mode Exit fullscreen mode

Conclusion

To sum up, <str>[start:stop:step] is the syntax to obtain string slices or substrings in Python.

Now that you've learned how to slice strings, it's time to put your skills to practice, maybe? Happy learning and coding!


Cover image: Photo by Tamanna Rumee on Unsplash

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay