Python – Convert Snake case to Pascal case
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.
Table of Content
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 .