Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Bekerja dengan rentetan adalah tugas biasa dalam Python. Anda sering perlu memikirkan sama ada rentetan mengandungi rentetan lain.
Kaedah paling mudah untuk menyemak sama ada rentetan Python mengandungi subrentetan termasuk operator 'in', fungsi find() dan kaedah index(). Senario yang lebih kompleks boleh diselesaikan dengan ungkapan biasa atau perpustakaan luaran seperti Panda.
Artikel ini menunjukkan kepada anda:
empat kaedah mudah
dua fungsi regex yang lebih kompleks
kaedah menggunakan perpustakaan Pandas
Anda akan mempelajari setiap teknik melalui contoh sintaks dan penggunaannya. Anda juga akan mendapat petua tentang kaedah yang terbaik untuk keperluan yang berbeza.
Mari kita mulakan!
Isi kandungan
Asas Rentetan Python
Rentetan dalam Python ialah jujukan aksara yang digunakan untuk mewakili data berasaskan teks. Ia boleh termasuk huruf, digit, simbol dan ruang putih.
Ia adalah salah satu jenis data terbina dalam Python dan boleh dibuat menggunakan sama ada:
petikan tunggal (' ')
petikan berganda (” “)
petikan tiga kali ganda ("' "' atau """ """)
Rentetan diindeks, yang bermaksud anda boleh mengakses aksara tertentu dengan merujuk nombor indeksnya. Indeks permulaan ialah 0, yang bermaksud aksara pertama rentetan mempunyai indeks 0, yang kedua mempunyai indeks 1, dan seterusnya.
Seterusnya, kita melihat cara untuk menyemak subrentetan.
4 Cara Paling Mudah untuk Semak Substring
Python menyediakan banyak cara untuk menyemak sama ada subrentetan tertentu wujud dalam rentetan yang lebih besar. Ada yang lebih kompleks daripada yang lain. Untuk semakan paling asas, kaedah paling mudah ialah operator dalam atau salah satu daripada tiga kaedah rentetan.
dalam operator
kaedah cari().
kaedah indeks().
kaedah count().
1. Dalam Operator
Pengendali 'dalam' dalam Python ialah cara yang mudah dan intuitif untuk memeriksa sama ada satu rentetan wujud dalam rentetan lain. Operator ini menyemak keahlian dan mengembalikan nilai boolean:
Benar jika subrentetan ditemui dalam rentetan utama
Palsu jika tidak
Berikut ialah beberapa contoh kod:
s = "Hello, world!"
sub = "world"
result = sub in s
print(result) # Output: True
Pengendali 'dalam' adalah peka huruf besar-kecil. Ini bermakna ia menganggap aksara kecil dan huruf besar sebagai berbeza. Kod di atas tidak akan menemui subrentetan "hello", jadi pengendali mengembalikan palsu.
Jika anda ingin melakukan semakan tidak sensitif huruf besar-besaran, anda boleh menukar kedua-dua rentetan utama dan subrentetan kepada kes yang sama sebelum melakukan semakan:
s = "Hello, world!"
sub = "hello"
result = sub.lower() in s.lower()
print(result) # Output: True
Kelemahan operator in ialah ia tidak memberikan kedudukan subrentetan dalam rentetan utama. Untuk itu, anda memerlukan kaedah lain dalam bahagian ini. Teruskan membaca…
2. Kaedah Cari().
Kaedah find() mengembalikan indeks pertama di mana subrentetan muncul, atau -1 jika subrentetan tidak ditemui.
Anda memanggil kaedah find() pada rentetan s , menghantar sub rentetan sebagai hujah. Berikut adalah contoh:
s = "Hello, world!"
sub = "world"
index = s.find(sub)
if index != -1:
print("Found at index:", index) # Output: Found at index: 7
else:
print("Not found")
Anda boleh menentukan indeks permulaan atau akhir untuk mengehadkan carian anda. Kelemahan kaedah ini ialah ia berhenti pada kejadian pertama.
3. Kaedah Indeks().
Kaedah index () agak serupa dengan kaedah find() , kecuali ia menimbulkan ValueError apabila subrentetan tidak dijumpai. Ini bermakna anda harus membungkus panggilan dalam bahagian Cuba/Kecuali.
Untuk menggunakan kaedah index() , panggilnya pada rentetan s , dan hantar sub rentetan sebagai hujah.
s = "Hello, world!"
sub = "world"
try:
index = s.index(sub)
print("Found at index:", index) # Output: Found at index: 7
except ValueError:
print("Not found")
Kaedah ini juga berhenti pada subrentetan pertama di dalam teks.
4. Kaedah Count().
Kaedah .count() mengira berapa kali subrentetan berlaku dalam rentetan asal. Ia mengembalikan integer yang mewakili kiraan ini. Jika subrentetan tidak ditemui dalam rentetan utama, ia mengembalikan 0.
Berikut ialah contoh mudah yang mencari huruf "o" dalam teks "Hello, dunia!":
s = "Hello, world!"
sub = "o"
print(s.count(sub)) # Output:2
2 Cara Memadankan Rentetan Dengan Ungkapan Biasa
Menggunakan ungkapan biasa (regex) adalah lebih kompleks sedikit daripada kaedah dalam bahagian sebelumnya. Walau bagaimanapun, mereka memberi anda lebih banyak pilihan untuk mencari dan menganalisis teks yang anda hadapi.
Dua daripada cara termudah dalam modul semula ialah:
carian()
findall()
1. re.Search()
Fungsi search () dalam modul semula mencari corak dalam rentetan tertentu dan mengembalikan objek padanan jika padanan ditemui. Jika tidak, ia mengembalikan Tiada .
Secara lalai, fungsi ini adalah sensitif huruf besar-besaran. Anda boleh menggunakan bendera re.IgnoreCase untuk mengelakkan sensitiviti huruf besar.
Berikut ialah contoh mudah yang menggunakan pernyataan bersyarat berdasarkan sama ada rentetan ditemui:
import re
pattern = "python"
text = "I love Python programming"
match = re.search(pattern, text, re.IGNORECASE)
if match:
print("Pattern found")
else:
print("Pattern not found")
Ambil perhatian bahawa kaedah ini mencari padanan pertama dan kemudian berhenti mencari. Jika anda ingin mencari semua padanan, maka yang seterusnya dalam senarai ini adalah untuk anda.
2. re.Findall()
Kaedah ini mencari semua kemunculan corak carian dalam rentetan tertentu dan mengembalikan senarai yang mengandungi semua padanan.
Contoh ini menggunakan corak yang sepadan dengan satu bijih lagi digit dalam rentetan. Rentetan teks "123, 456, 789" mengandungi tiga jujukan digit.
import re
pattern = "d+"
text = "123, 456, 789"
numbers = re.findall(pattern, text)
print(numbers)
Ini adalah jawapan daripada kod sampel: ['123', '456', '789'].
Cara Mencari Substrings Dengan Panda
Pandas ialah pustaka analisis dan manipulasi data sumber terbuka yang popular untuk Python. Ia menyediakan struktur data dan fungsi yang diperlukan untuk memanipulasi dan menganalisis data berstruktur.
Salah satu struktur data utama yang disediakan oleh Pandas ialah DataFrame. Anda boleh menggunakan struktur data serba boleh ini untuk menyemak satu rentetan di dalam rentetan yang lain.
Kelebihan Pandas ialah ia menyediakan pakej kod yang anda perlu tulis secara meluas dalam bahasa pengaturcaraan lain. Khususnya, banyak kuasa dimuatkan di dalam fungsi mengandungi.
str.contains() Fungsi dalam Panda
Kaedah str.contains() menguji jika corak tertentu atau ungkapan biasa terkandung dalam rentetan lajur DataFrame.
Berikut ialah contoh yang mengimport pustaka dan mencari rentetan dalam senarai rentetan:
import pandas as pd
# Creating a sample DataFrame
data = {'fruits': ['apple', 'banana', 'cherry', 'watermelon', 'orange']}
df = pd.DataFrame(data)
# Searching for substrings in the 'fruits' column
has_an = df['fruits'].str.contains(pat='an', regex=False)
# Filtering the DataFrame based on the search results
filtered_df = df[has_an]
print(filtered_df)
Dalam contoh ini, kami mencari subrentetan 'an' dalam lajur 'buah' dan menapis DataFrame dengan sewajarnya. Outputnya ialah:
1 pisang
4 oren
Jika anda sedang mencari lebih banyak contoh tentang perkara yang boleh dilakukan oleh Panda, lihat video ini:
Petua untuk Memilih Kaedah Khusus dalam Python
Pilihan kaedah bergantung pada keperluan khusus tugas anda.
Berikut ialah empat sebab untuk memilih salah satu kaedah yang telah anda pelajari daripada artikel ini, ditambah satu kaedah bonus yang akan anda pelajari di tempat lain di blog ini:
Kepantasan pemprosesan
Anda perlu mengetahui lokasi subrentetan
Anda perlu mengetahui bilangan kejadian subrentetan
Anda mahu memadankan corak yang kompleks
Melakukan analisis teks
1. Kepantasan Pemprosesan
0perator 'dalam' ialah pilihan terbaik jika anda hanya ingin mengetahui sama ada subrentetan wujud dalam rentetan.
Ia mudah, intuitif dan pantas untuk tujuan ini. Walau bagaimanapun, ia tidak memberikan maklumat tentang lokasi atau kiraan subrentetan.
2. Lokasi Subrentetan
Gunakan kaedah .find() atau .index() jika anda perlu mengetahui kedudukan kejadian pertama subrentetan dalam rentetan.
Kedua-duanya mengembalikan indeks kejadian pertama subrentetan.
3. Kiraan Subrentetan
Gunakan kaedah .count() apabila anda ingin mengetahui berapa kali subrentetan berlaku dalam rentetan.
4. Corak Kompleks
Jika anda perlu memadankan corak kompleks atau melakukan carian tidak peka huruf besar-besaran, ungkapan biasa adalah yang paling fleksibel. Fungsi re.search () boleh mengendalikan corak melangkaui subrentetan ringkas dan boleh melakukan carian tidak sensitif huruf besar-besaran dengan mudah.
Walau bagaimanapun, ungkapan biasa boleh berlebihan untuk semakan subrentetan mudah dan juga boleh menjadi lebih perlahan dan lebih kompleks untuk digunakan dan diselenggara.
5. Melakukan Analisis Teks
Lihat artikel kami tentang analisis teks dalam Python , yang menunjukkan kepada anda cara bekerja dengan pustaka textblob.
Anda boleh menggunakan fungsi .tags untuk menyemak bahagian pertuturan atau fungsi .ngram untuk mencari perkataan yang kerap muncul bersama dalam dokumen.
Fikiran Akhir
Anda telah mempelajari tujuh kaedah untuk menyemak sama ada perkataan atau objek rentetan terkandung dalam yang lain. Ini termasuk pengendali keahlian, fungsi terbina dalam, regex dan fungsi Pandas.
Setiap kaedah adalah betul untuk beberapa situasi tetapi tidak untuk semua. Gunakan artikel ini sebagai helaian tipu semasa anda menguasai bahasa pengaturcaraan Python dan menggunakan penyelesaian terbaik untuk tugas analisis rentetan anda.
Ingat, tiada kaedah satu saiz yang sesuai untuk semua. Setiap pendekatan mempunyai kelebihan dan keistimewaan tersendiri, jadi jangan ragu untuk memilih pendekatan yang sesuai dengan gaya anda atau masalah tertentu yang anda cuba selesaikan. Pada penghujung hari, Python adalah tentang menjadikan hidup anda lebih mudah, jadi terima fleksibilitinya!
Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Anda akan belajar cara menyimpan dan memuatkan objek daripada fail .rds dalam R. Blog ini juga akan membincangkan cara mengimport objek dari R ke LuckyTemplates.
Dalam tutorial bahasa pengekodan DAX ini, pelajari cara menggunakan fungsi GENERATE dan cara menukar tajuk ukuran secara dinamik.
Tutorial ini akan merangkumi cara menggunakan teknik Visual Dinamik Berbilang Thread untuk mencipta cerapan daripada visualisasi data dinamik dalam laporan anda.
Dalam artikel ini, saya akan menjalankan konteks penapis. Konteks penapis ialah salah satu topik utama yang perlu dipelajari oleh mana-mana pengguna LuckyTemplates pada mulanya.
Saya ingin menunjukkan cara perkhidmatan dalam talian LuckyTemplates Apps boleh membantu dalam mengurus laporan dan cerapan berbeza yang dijana daripada pelbagai sumber.
Ketahui cara untuk menyelesaikan perubahan margin keuntungan anda menggunakan teknik seperti mengukur percabangan dan menggabungkan formula DAX dalam LuckyTemplates.
Tutorial ini akan membincangkan tentang idea pewujudan cache data dan cara ia mempengaruhi prestasi DAX dalam memberikan hasil.
Jika anda masih menggunakan Excel sehingga sekarang, maka inilah masa terbaik untuk mula menggunakan LuckyTemplates untuk keperluan pelaporan perniagaan anda.
Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu