Bagaimana untuk menukar CamelCase ke snake_case dengan cekap dalam Python?

Susan Sarandon
Lepaskan: 2024-10-28 00:20:29
asal
220 orang telah melayarinya

How to efficiently convert CamelCase to snake_case in Python?

CamelCase kepada snake_case Penukaran dalam Python

Penukaran daripada CamelCase kepada snake_case ialah transformasi yang kerap dalam pengaturcaraan Python. Soalan ini menumpukan pada mencari cara yang cekap untuk melaksanakan tugas ini.

Penyelesaian Cadangan

Kod yang disediakan menggunakan modul semula untuk mencapai penukaran ini:

import semula

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

Kod ini menggunakan ungkapan biasa untuk memasukkan garis bawah sebelum huruf besar, dan kemudian menukar rentetan yang terhasil kepada huruf kecil. Hasilnya ialah perwakilan sarung ular yang diingini.

Pendekatan Alternatif

Jika prestasi membimbangkan, regex boleh disusun terlebih dahulu:

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

Untuk kes yang lebih lanjut, pas penggantian berganda boleh digunakan:

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()
Salin selepas log masuk

Selain itu, kod boleh dilanjutkan untuk mengendalikan berbilang garis bawah:

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()
Salin selepas log masuk

Snake_case to PascalCase Conversion

Selain itu penukaran terbalik daripada snake_case kepada PascalCase disediakan:

name = 'snake_case_name'
name = ''.join(word.title() untuk perkataan dalam name.split('_'))
cetak(nama) # SnakeCaseName

Atas ialah kandungan terperinci Bagaimana untuk menukar CamelCase ke snake_case dengan cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!