w3resource

Python: Convert a given string to snake case


55. Convert to Snake Case

Snake case (stylized as snake_case) refers to the style of writing in which each space is replaced by an dash (-) character, and the first letter of each word written in lowercase. It is a commonly used naming convention in computing, for example for variable and subroutine names, and for filenames. One study has found that readers can recognize snake case values more quickly than camel case.

Write a Python program to convert a given string to snake case.

  • Use re.sub() to replace any - or _ with a space, using the regexp r"(_|-)+".
  • Use re.sub() to match all words in the string, str.lower() to lowercase them.
  • Finally, use str.join() to combine all word using - as the separator.

Sample Solution:

Python Code:

from re import sub
def snake_case(s):
  return '-'.join(
    sub(r"(\s|_|-)+"," ",
    sub(r"[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+",
    lambda mo: ' ' + mo.group(0).lower(), s)).split())
 
print(snake_case('JavaScript'))
print(snake_case('GDScript'))
print(snake_case('BTW...what *do* you call that naming style? snake_case? '))

Sample Output:

java-script
gd-script
btw...-what-*-do*-you-call-that-naming-style?-snake-case?

Flowchart:

Flowchart: Regular Expression -  Convert a given string to snake case.

For more Practice: Solve these Related Problems:

  • Write a Python program to convert a given string with mixed punctuation and spaces to snake_case.
  • Write a Python script to transform a sentence into snake_case by replacing spaces and hyphens with underscores.
  • Write a Python program to reformat a camelCase string into snake_case using regex substitutions.
  • Write a Python function to convert any given string into snake_case and then validate the conversion using a regex pattern.

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Python program to concatenate the consecutive numbers in a given string.
Next: Write a Python program that takes any number of iterable objects or objects with a length property and returns the longest one.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.