Comment convertir efficacement CamelCase en Snake_case en Python ?

Susan Sarandon
Libérer: 2024-10-28 00:20:29
original
220 Les gens l'ont consulté

How to efficiently convert CamelCase to snake_case in Python?

CamelCase en Snake_case Conversion en Python

La conversion de CamelCase en Snake_case est une transformation fréquente dans la programmation Python. Cette question se concentre sur la recherche d'un moyen efficace d'effectuer cette tâche.

Solution proposée

Le code fourni utilise le module re pour réaliser cette conversion :

importer re

name = 'CamelCaseName'
name = re.sub(r'(?print(name) # camel_case_name

Ce code utilise une expression régulière pour insérer des traits de soulignement avant les majuscules, puis convertit la chaîne résultante en minuscules. Le résultat est la représentation Snake_case souhaitée.

Approches alternatives

Si les performances posent problème, l'expression régulière peut être compilée au préalable :

modèle = re.compile(r'(?name = pattern.sub('_', name).lower()

Pour les cas plus avancés, un double pass de substitution peut être utilisé :

def camel_to_snake(name):

name = re.sub('(.)([A-Z][a-z]+)', r'_', name)
return re.sub('([a-z0-9])([A-Z])', r'_', name).lower()
Copier après la connexion

De plus, le code peut être étendu pour gérer plusieurs traits de soulignement :

def to_snake_case(name):

name = re.sub('(.)([A-Z][a-z]+)', r'_', name)
name = re.sub('__([A-Z])', r'_', name)
name = re.sub('([a-z0-9])([A-Z])', r'_', name)
return name.lower()
Copier après la connexion

Snake_case to PascalCase Conversion

De plus, une conversion inverse de Snake_case en PascalCase est fournie :

name = 'snake_case_name'
name = ''.join(word.title() for word in name.split('_'))
imprimer(nom) # SnakeCaseName

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!