Heim > Backend-Entwicklung > Python-Tutorial > Wie konvertiert man CamelCase elegant in Snake_case in Python?

Wie konvertiert man CamelCase elegant in Snake_case in Python?

Barbara Streisand
Freigeben: 2024-11-01 22:12:31
Original
634 Leute haben es durchsucht

How to Convert CamelCase to snake_case in Python Elegantly?

Elegante Python-Funktion zum Konvertieren von CamelCase in Snake_case?

Die Konvertierung von CamelCase in Snake_case in Python erfordert einen einfachen, aber eleganten Ansatz. In diesem Artikel werden mehrere effektive Methoden zum Erreichen dieser Transformation untersucht, wobei auf Variationen in Namenskonventionen eingegangen und klare Beispiele bereitgestellt werden.

Verwendung regulärer Ausdrücke mit Lookahead/Lookbehind

Die vielseitigste Methode verwendet reguläre Ausdrücke mit Lookahead- und Lookbehind-Behauptungen:

<code class="python">import re

def camel_to_snake(name):
    name = re.sub(r'(?<!^)(?=[A-Z])', '_', name).lower()
    return name</code>
Nach dem Login kopieren

Dieses Muster gleicht Grenzen zwischen Groß- und Kleinbuchstaben ab, fügt Unterstriche ein und konvertiert gleichzeitig in Kleinbuchstaben.

Alternative Regex-Muster

Für komplexere Fälle gibt es hier einen alternativen regulären Ausdruck mit Alternation:

<code class="python">pattern = re.compile(r"(\w+)([A-Z]\w+)")
name = "_".join(pattern.findall(name))</code>
Nach dem Login kopieren

Dieses Muster behandelt Fälle, in denen mehrere Großbuchstaben nacheinander erscheinen.

Um die Konvertierung von „HTTPHeader " zu „h_t_t_p_header“ verwenden Sie das folgende Muster:

<code class="python">pattern = re.compile(r"([a-z])([A-Z])")
name = "_".join(pattern.findall(name))</code>
Nach dem Login kopieren

Multi-Pass-Ersetzungen

Ein alternativer Ansatz vermeidet die Verwendung von Lookahead/Lookbehind:

<code class="python">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()</code>
Nach dem Login kopieren

Dieser Ansatz kombiniert zwei Substitutionsdurchläufe, um verschiedene Namenskonventionen zu handhaben.

Snake Case in Pascal Case

Der Vollständigkeit halber finden Sie hier eine Funktion zum Konvertieren von „snake_case“ in „PascalCase“. :

<code class="python">def snake_to_pascal(name):
    name = ''.join(word.title() for word in name.split('_'))
    return name</code>
Nach dem Login kopieren

Diese Funktionen bieten eine umfassende Lösung für CamelCase- und Snake_case-Transformationen in Python und berücksichtigen verschiedene Namenskonventionen.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage