ホームページ >バックエンド開発 >Python チュートリアル >Python で CamelCase を Snake_case に効率的に変換するにはどうすればよいですか?

Python で CamelCase を Snake_case に効率的に変換するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-28 00:20:29329ブラウズ

How to efficiently convert CamelCase to snake_case in Python?

Python でのキャメルケースからスネークケースへの変換

キャメルケースからスネークケースへの変換は、Python プログラミングで頻繁に行われる変換です。この質問は、このタスクを実行する効率的な方法を見つけることに焦点を当てています。

提案された解決策

提供されたコードは、re モジュールを利用してこの変換を実現します。

インポート re

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

このコードは、正規表現を使用して大文字の前にアンダースコアを挿入し、結果の文字列を小文字に変換します。結果は、目的のsnake_case表現になります。

代替アプローチ

パフォーマンスが懸念される場合は、事前に正規表現をコンパイルできます:

パターン= re.compile(r'(?name = pattern.sub('_', name). lower()

より高度なケースでは、二重置換パスを使用できます:

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

さらに、コードを拡張して処理することができます。複数のアンダースコア:

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 から PascalCase への変換

さらに、 Snake_case から PascalCase への逆変換が提供されています:

name = 'snake_case_name'
name = ''.join(word.title() for word in name.split('_'))
print(名前) # SnakeCaseName

以上がPython で CamelCase を Snake_case に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。