Programa de Python para convertir una string de camello en una caja de serpiente

Dada una string en mayúsculas y minúsculas, escriba un programa en Python para convertir la string dada de mayúsculas y minúsculas en mayúsculas y minúsculas.
Ejemplos: 

Input : GeeksForGeeks
Output : geeks_for_geeks

Input : ThisIsInCamelCase
Output : this_is_in_camel_case

Veamos las diferentes formas en que podemos hacer esta tarea. 
Método n.º 1: enfoque ingenuo
Esta es una implementación ingenua para convertir el caso de camello en caso de serpiente. Primero, inicializamos una variable ‘res’ con una lista vacía y le agregamos el primer carácter (en minúsculas). Ahora, cada vez que encontramos un alfabeto en mayúsculas, agregamos ‘_’ y el alfabeto (en minúsculas) a ‘res’; de lo contrario, solo agregamos el alfabeto.  

Python3

# Python3 program to convert string
# from camel case to snake case
 
def change_case(str):
    res = [str[0].lower()]
    for c in str[1:]:
        if c in ('ABCDEFGHIJKLMNOPQRSTUVWXYZ'):
            res.append('_')
            res.append(c.lower())
        else:
            res.append(c)
     
    return ''.join(res)
     
# Driver code
str = "GeeksForGeeks"
print(change_case(str))
Producción: 

geeks_for_geeks

 

  
Método #2: Comprensión de listas

Python3

# Python3 program to convert string
# from camel case to snake case
 
def change_case(str):
     
    return ''.join(['_'+i.lower() if i.isupper()
               else i for i in str]).lstrip('_')
     
# Driver code
str = "GeeksForGeeks"
print(change_case(str))
Producción: 

geeks_for_geeks

 

  
Método n.º 3: Python reduce ()
El método Python reduce() aplica una función a todos los alfabetos de strings, donde quiera que encuentre un alfabeto en mayúsculas, agrega ‘_’ delante y reemplaza el alfabeto en mayúsculas con el alfabeto en minúsculas. 

Python3

# Python3 program to convert string
# from camel case to snake case
from functools import reduce
 
def change_case(str):
     
    return reduce(lambda x, y: x + ('_' if y.isupper() else '') + y, str).lower()
     
# Driver code
str = "GeeksForGeeks"
print(change_case(str))
Producción: 

geeks_for_geeks

 

  
Método #4: expresión regular de Python 

Python3

# Python3 program to convert string
# from camel case to snake case
import re
 
def change_case(str):
    s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', str)
    return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()
     
# Driver code
str = "GeeksForGeeks"
print(change_case(str))
Producción: 

geeks_for_geeks

 

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *