Saya ingin mencari posisi (atau indeks) dari kejadian terakhir dari substring tertentu dalam string input yang diberikan str
.
Sebagai contoh, anggaplah string input adalah str = 'hello'
dan substringnya target = 'l'
, maka seharusnya output 3.
Bagaimana saya bisa melakukan ini?
str
sebagai nama variabel. Nama variabel lain yang harus dihindari orang dengan python adalahabc
; ada modul yang disebutabc
di API asli.Anda dapat menggunakan tautan
rfind()
atau Python2:rindex()
rfind()
rindex()
Perbedaannya adalah ketika substring tidak ditemukan,
rfind()
kembali-1
sambilrindex()
memunculkan pengecualianValueError
(tautan Python2:)ValueError
.Jika Anda tidak ingin memeriksa
rfind()
kode kembali-1
, Anda dapat memilihrindex()
yang akan memberikan pesan kesalahan yang bisa dimengerti. Jika tidak, Anda dapat mencari menit dari mana nilai tak terduga-1
berasal dari dalam kode Anda ...Contoh: Pencarian karakter baris baru terakhir
sumber
Gunakan
str.rindex
metodenya.sumber
Coba ini:
sumber
The
more_itertools
menawarkan perpustakaan alat untuk menemukan indeks dari semua karakter atau semua substring .Diberikan
Kode
Karakter
Sekarang ada
rlocate
alat yang tersedia:Alat pelengkap adalah
locate
:Substring
Ada juga
window_size
parameter yang tersedia untuk mencari item utama dari beberapa item:sumber
Tidak mencoba menghidupkan kembali pos yang tidak aktif, tetapi karena ini belum diposting ...
(Ini adalah bagaimana saya melakukannya sebelum menemukan pertanyaan ini)
Penjelasan: Ketika Anda mencari kejadian terakhir, benar-benar Anda mencari kejadian pertama dalam string terbalik. Mengetahui hal ini, saya lakukan
s[::-1]
(yang mengembalikan string terbalik), dan kemudian diindekstarget
dari sana. Lalu saya lakukanlen(s) - 1 - the index found
karena kami ingin indeks dalam string (yaitu asli) yang tidak dapat dikembalikan .Hati-hati! Jika
target
lebih dari satu karakter, Anda mungkin tidak akan menemukannya di string terbalik. Untuk memperbaikinya, gunakanlast_pos = len(s) - 1 - s[::-1].index(target[::-1])
, yang mencari versi terbalik daritarget
.sumber
Jika Anda tidak ingin menggunakan rfind maka ini akan melakukan trik /
sumber
Anda dapat menggunakan
rindex()
fungsi untuk mendapatkan kemunculan karakter terakhir dalam stringsumber
Metode Python String rindex ()
Deskripsi
Metode string Python rindex () mengembalikan indeks terakhir tempat str substring ditemukan, atau memunculkan pengecualian jika tidak ada indeks seperti itu, secara opsional membatasi pencarian ke string [mohon: akhiri].
Sintaksis
Berikut adalah sintaks untuk metode rindex () -
Parameter
str - Ini menentukan string yang akan dicari.
mohon - Ini adalah indeks awal, secara default 0
len - Ini adalah indeks akhir, secara default sama dengan panjang string.
Nilai Pengembalian
Metode ini mengembalikan indeks terakhir jika ditemukan sebaliknya memunculkan pengecualian jika str tidak ditemukan.
Contoh
berikut menunjukkan penggunaan metode rindex ().
Demo Langsung
! / usr / bin / python
Ketika kami menjalankan program di atas, itu menghasilkan hasil sebagai berikut -
Ref: Metode Python String rindex () - Tutorialspoint
sumber