Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiert man CamelCase effizient in Snake_case in Python?

Wie konvertiert man CamelCase effizient in Snake_case in Python?

Susan Sarandon
Susan SarandonOriginal
2024-10-28 00:20:29220Durchsuche

How to efficiently convert CamelCase to snake_case in Python?

CamelCase-zu-snake_case-Konvertierung in Python

Die Konvertierung von CamelCase zu Snake_case ist eine häufige Transformation in der Python-Programmierung. Bei dieser Frage geht es darum, einen effizienten Weg zur Ausführung dieser Aufgabe zu finden.

Vorgeschlagene Lösung

Der bereitgestellte Code nutzt das re-Modul, um diese Konvertierung zu erreichen:

import re

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

Dieser Code verwendet einen regulären Ausdruck, um Unterstriche vor Großbuchstaben einzufügen, und wandelt dann die resultierende Zeichenfolge in Kleinbuchstaben um. Das Ergebnis ist die gewünschte Snake_Case-Darstellung.

Alternative Ansätze

Wenn die Leistung ein Problem darstellt, kann die Regex vorher kompiliert werden:

Muster = re.compile(r'(?name = pattern.sub('_', name).lower()

Für fortgeschrittenere Fälle kann ein doppelter Substitutionsdurchgang verwendet werden:

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()

Darüber hinaus kann der Code um handle erweitert werden mehrere Unterstriche:

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()

Snake_case to PascalCase Conversion

Zusätzlich, Es wird eine umgekehrte Konvertierung von Snake_case in PascalCase bereitgestellt:

name = 'snake_case_name'
name = ''.join(word.title() für Wort in name.split('_'))
print(name) # SnakeCaseName

Das obige ist der detaillierte Inhalt vonWie konvertiert man CamelCase effizient in Snake_case in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn