112 lines
2.6 KiB
Markdown
112 lines
2.6 KiB
Markdown
|
---
|
|||
|
title: Is There a Way to Substring a String in Python
|
|||
|
---
|
|||
|
|
|||
|
## Is There a Way to Substring a String in Python
|
|||
|
|
|||
|
Python offers many ways to substring a string. It is often called 'slicing'.
|
|||
|
|
|||
|
It follows this template:
|
|||
|
|
|||
|
```python
|
|||
|
string[start: end: step]
|
|||
|
```
|
|||
|
Where,
|
|||
|
|
|||
|
`start`: The starting index of the substring. The character at this index is included in the substring. If _start_ is not included, it is assumed to equal to 0.
|
|||
|
|
|||
|
`end`: The terminating index of the substring. The character at this index is _NOT_ included in the substring. If _end_ is not included, or if the specified value exceeds the string length, it is assumed to be equal to the length of the string by default.
|
|||
|
|
|||
|
`step`: Every 'step' character after the current character to be included. The default value is 1. If the _step_ value is omitted, it is assumed to equal to 1.
|
|||
|
|
|||
|
#### Template
|
|||
|
|
|||
|
`string[start:end]`: Get all characters from index _start_ to _end-1_
|
|||
|
|
|||
|
`string[:end]`: Get all characters from the beginning of the string to _end-1_
|
|||
|
|
|||
|
`string[start:]`: Get all characters from index _start_ to the end of the string
|
|||
|
|
|||
|
`string[start:end:step]`: Get all characters from _start_ to _end-1_ discounting every _step_ character
|
|||
|
|
|||
|
|
|||
|
#### Examples
|
|||
|
|
|||
|
* **Get the first 5 characters of a string**
|
|||
|
|
|||
|
```python
|
|||
|
string = "freeCodeCamp"
|
|||
|
print(string[0:5])
|
|||
|
```
|
|||
|
Output:
|
|||
|
```shell
|
|||
|
> freeC
|
|||
|
```
|
|||
|
|
|||
|
Note: `print(string[:5])` returns the same result as `print(string[0:5])`
|
|||
|
|
|||
|
* **Get a substring of length 4 from the 3rd character of the string**
|
|||
|
|
|||
|
```python
|
|||
|
string = "freeCodeCamp"
|
|||
|
print(string[2:6])
|
|||
|
```
|
|||
|
Output:
|
|||
|
```shell
|
|||
|
> eeCo
|
|||
|
```
|
|||
|
|
|||
|
Please note that the start or end index may be a negative number. A negative index means that you start counting from the end of the string instead of the beginning (i.e from the right to left). Index -1 represents the last character of the string, -2 represents the second to last character and so on...
|
|||
|
|
|||
|
* **Get the last character of the string**
|
|||
|
|
|||
|
```python
|
|||
|
string = "freeCodeCamp"
|
|||
|
print(string[-1])
|
|||
|
```
|
|||
|
Output:
|
|||
|
```shell
|
|||
|
> p
|
|||
|
```
|
|||
|
|
|||
|
* **Get the last 5 characters of a string**
|
|||
|
|
|||
|
```python
|
|||
|
string = "freeCodeCamp"
|
|||
|
print(string[-5:])
|
|||
|
```
|
|||
|
Output:
|
|||
|
```shell
|
|||
|
> eCamp
|
|||
|
```
|
|||
|
|
|||
|
* **Get a substring which contains all characters except the last 4 characters and the 1st character**
|
|||
|
|
|||
|
```python
|
|||
|
string = "freeCodeCamp"
|
|||
|
print(string[1:-4])
|
|||
|
```
|
|||
|
Output:
|
|||
|
```shell
|
|||
|
> reeCode
|
|||
|
```
|
|||
|
|
|||
|
#### More examples
|
|||
|
```py
|
|||
|
str = “freeCodeCamp”
|
|||
|
|
|||
|
print str[-5:-2] # prints ‘eCa’
|
|||
|
print str[-1:-2] # prints ‘’ (empty string)
|
|||
|
```
|
|||
|
|
|||
|
* **Get every other character from a string**
|
|||
|
|
|||
|
```python
|
|||
|
string = "freeCodeCamp"
|
|||
|
print(string[::2])
|
|||
|
```
|
|||
|
Output:
|
|||
|
```shell
|
|||
|
> feCdCm
|
|||
|
```
|