Basic String Operations
Explore fundamental string operations such as slicing, concatenation, repetition, splitting, and joining. Understand their syntax, behavior, and computational costs in Python. This lesson helps you build a solid foundation for implementing efficient string algorithms and recognizing performance implications.
We'll cover the following...
Having established that strings are immutable and that any apparent modification produces a new string rather than altering the original, the next step is to build familiarity with the operations that are actually available on strings. These operations form the practical foundation of string algorithm implementation. Each one has a defined behavior and a measurable cost, and understanding both is essential before moving on to writing algorithms that use them.
Slicing: Extracting part of a string
Slicing is the operation of extracting a contiguous portion of a string. The extracted portion is called a substring, and it is returned as a new string. The original string remains unchanged.
In Python, slicing is performed using the following syntax:
s[start:end]
The result contains all characters from the start index up to but not including the end index. Consider the following example:
In this example, s[0:5] extracts the first five characters, and s[6:11] extracts the last five. The character at the end index is never included in the result.
Now, let's look at the following visualiser for a better understanding of slicing in strings:
Omitting start and end in slicing
If the start or end values are omitted, Python uses default values:
When the
startindex is omitted, the slice begins from the first character.When the
endindex is omitted, the slice extends to the last character.When both are omitted, the entire string is returned as a new copy.
Step in slicing
Slicing also accepts a third argument called the step, which determines how characters are selected within the specified range.
s[start:end:step]
A step of 2 selects every second character, and a step of -1 traverses the string in reverse order.
Complexity analysis of slicing
Producing a slice of length