Open In App

Python – Convert Snake case to Pascal case

Last Updated : 16 Jan, 2025
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Share
Report
News Follow

Converting a string from snake case to Pascal case involves transforming a format where words are separated by underscores into a single string where each word starts with an uppercase letter, including the first word.

Using title()

This method converts a snake case string into pascal case by replacing underscores with spaces and capitalizing the first letter of each word using the title() function. After capitalizing, the words are joined back together without spaces.

s = 'geeksforgeeks_is_best'
res = s.replace("_", " ").title().replace(" ", "")
print(res)

Output
GeeksforgeeksIsBest

Explanation:

  • replace("_", " "): This handles the conversion of underscores to spaces.
  • title():This ensures that the first letter of each word is capitalized.
  • replace(" ", ""): This removes any spaces, ensuring the result is in pascal case.

Using split()

This method splits the string by underscores, capitalizes each word and then joins them back together. It is efficient in terms of both time and readability.

s= 'geeksforgeeks_is_best'
res = ''.join(word.capitalize() for word in s.split('_'))
print(res)

Output
GeeksforgeeksIsBest

Explanation:

  • split('_') splits the string s into individual words at each underscore.
  • capitalize() capitalizes the first letter of each word.
  • ''.join() joins the list of words into a single string without any separator.

Using re.sub()

Regular expressions are highly flexible and can be used to replace underscores and capitalize the first letter of each word efficiently.

import re

s= "geeksforgeeks_is_best"
res= re.sub(r"(^|_)([a-z])", lambda match: match.group(2).upper(), s)
print(res)

Output
GeeksforgeeksIsBest

Explanation:

  • (^|_) matches either the start of the string (^) or an underscore (_).
  • ([a-z]) matches any lowercase letter (a-z) following the start of the string s or an underscore.
  • lambda match: match.group(2).upper() converts the matched lowercase letter (group 2) to uppercase.

Using for loop

This approach manually iterates through each character in the string, capitalizes the first letter after an underscore and constructs the PascalCase string incrementally.

s= 'geeksforgeeks_is_best'
res = ""
capNext = True  # Flag to track if the next character should be capitalized

for char in s:
    if char == '_':  
        capNext = True 
    elif capNext:  
        res += char.upper()  # Capitalize the current character
        capNext = False 
    else:
        res += char  # Add the character as it is

print(res)

Output
GeeksforgeeksIsBest

Explanation:

  • for char in s iterates through each character in the string s.
  • if char == ‘_’ sets capNext = True to indicate the next character should be capitalized.
  • elif capNext: If the flag is True, the character is converted to uppercase and appended to res and the flag is reset with capNext = False.
  • else: If the flag is False, the character is appended to res .


Next Article
Practice Tags :

Similar Reads

three90RightbarBannerImg