Python String Methods

Python offers a wide range of built-in methods for string manipulation.

It is important to note that strings in Python are immutable, meaning they cannot be changed once created. As a result, string methods return a new, modified string instead of altering the original.

I have classified string methods into 5 categories based on their functionality. Click on any method to learn more about it.

(1) Case Conversion Methods

MethodDescriptionExample
lower()Converts to lowercase"HELLO".lower() → "hello"
upper()Converts to uppercase"hello".upper() → "HELLO"
title()Capitalizes the first letter of each word"hello world".title() → "Hello World"
capitalize()Capitalizes the first character, lowercases the rest"hello WORLD".capitalize() → "Hello world"
casefold()Converts to lowercase more aggressively"Straße".casefold() → "strasse"
swapcase()Swaps case of each character"Hello".swapcase() → "hELLO"

(2) Search and Find Methods

MethodDescriptionExample
find()Returns the index of the first occurrence of the substring if found, else returns -1 "hello".find("e") → 1
rfind()Returns the index of the last occurrence of the substring if found, else returns -1"hello".rfind("l") → 3
index()Similar to find(), but raises ValueError if the substring is not found"hello".index("e") → 1
rindex()Similar to rfind(), but raises ValueError if the substring is not found."hello".rindex("l") → 3
startswith()Returns True if the string starts with the specified prefix"hello".startswith("he") → True
endswith()Returns True if the string ends with the specified suffix"hello".endswith("lo") → True
count()Returns the number of occurrences of a substring"hello".count("l") → 2

(3) String Modification and Replacement Methods

MethodDescriptionExample
replace()Replaces all occurrences of a substring with another string"hello".replace("l", "t") → "hetto"
strip()Removes leading and trailing characters (whitespace by default)" hello ".strip() → "hello"
lstrip()Removes leading characters (whitespace by default)"llama".lstrip("l") → "ama"
rstrip()Removes trailing characters (whitespace by default)"buzz".rstrip("z") → "bu"
join()Joins elements of an iterator with the string as a separator"-".join(['a', 'b', 'c']) → "a-b-c"
split()Splits a string into a list using a delimiter (default: whitespace)"a,b,c".split(",") → ['a', 'b', 'c']
rsplit()Like split(), but splits from the right"a,b,c".rsplit(",", 1) → ['a,b', 'c']
splitlines()Splits a string at line breaks (\n, \r\n, etc)"a\nb".splitlines() → ['a', 'b']
expandtabs()Replaces tabs (\t) with spaces (default: 8 spaces per tab)"a\tb".expandtabs(5) → "a b"
encode()Converts a string into bytes using a specified encoding (default is UTF-8)"hello".encode() → b'hello'
maketrans()Creates a translation map to be used with translate()str.maketrans("abc", "123") → {97: 49, 98: 50, 99: 51}
translate()Translates characters into a string using a translation map from maketrans()"abc".translate(str.maketrans("abc", "123")) → "123"
partition()Splits the string at the first occurrence of the separator into a 3-part tuple"a,b,c".partition(',') → ('a', ',', 'b,c')
rpartition()Splits the string at the last occurrence of the separator into a 3-part tuple"a,b,c".rpartition(',') → ('a,b', ',', 'c')

(4) String Validation Methods

MethodDescriptionExample
isalnum()Returns True if all characters are alphanumeric (a-z, A-Z, and 0-9)"abc123".isalnum() → True
isalpha()Returns True if all characters are alphabetic (a-z and A-Z)"abc".isalpha() → True
isascii()Returns True if all characters are ASCII"abc123".isascii() → True
isdecimal()Returns True if all characters are decimal digits. Stricter than isdigit()"123".isdecimal() → True
isdigit()Returns True if all characters are digits"²5".isdigit() → True
isnumeric()Returns True if all characters are numeric"Ⅷ".isnumeric() → True
isidentifier()Returns True if the string is a valid Python identifier"user_age".isidentifier() → True
islower()Returns True if all characters are lowercase"abc".islower() → True
isupper()Returns True if all characters are uppercase"ABC".isupper() → True
istitle()Returns True if the string follows title case (first letter of each word uppercase)"Hello World".istitle() → True
isspace()Returns True if all characters are whitespace"\n\t".isspace() → True
isprintable()Returns True if all characters are printable"abc\n".isprintable() → False

(5) Alignment, Padding, and Formatting Methods

MethodDescriptionExample
ljust()Left-justifies the string with padding (default: space)"hi".ljust(5, '-') → "hi---"
rjust()Right-justifies the string with padding (default: space)"hi".rjust(5, '-') → "---hi"
center()Centers the string with padding (default: space)"hi".center(5, '-') → "--hi-"
zfill()Pads the string with leading zeros to reach a specified width"9".zfill(3) → "009"
format()Formats string with placeholders and values"Name: {}".format("James") → "Name: James"
format_map()Formats using a dictionary (mapping) of values"age: {age}".format_map({"age": 32}) → "age: 32"