bagaimana jika saya ingin mencari kata isdari kalimat tersebut this is a cool dude? Saya mencoba metode find tetapi mengembalikan indeks 2, bukan 5. Bagaimana cara mencapai ini menggunakan find ()?
Regressor
@Regressor: perhatikan batasan regex dan kata.
mechanical_meat
28
Ikhtisar Cepat: indexdanfind
Di samping findmetode ada juga index. finddan indexkeduanya menghasilkan hasil yang sama: mengembalikan posisi kejadian pertama, tetapi jika tidak ada yang ditemukan indexakan meningkatkan pengembalian ValueErrorsementara . Secara speedwise, keduanya memiliki hasil benchmark yang sama.find-1
s.find(t)#returns: -1, or index where t starts in s
s.index(t)#returns: Same as find, but raises ValueError if t is not in s
Pengetahuan tambahan: rfinddan rindex:
Secara umum, temukan dan indeks mengembalikan indeks terkecil tempat string yang diteruskan dimulai, dan rfinddan rindexmengembalikan indeks terbesar tempat dimulai. Sebagian besar algoritme pencarian string mencari dari kiri ke kanan , sehingga fungsi yang dimulai dengan rmenunjukkan bahwa pencarian terjadi dari kanan ke kiri .
Jadi jika kemungkinan elemen yang Anda cari mendekati akhir daripada di awal daftar, rfindatau rindexakan lebih cepat.
s.rfind(t)#returns: Same as find, but searched right to left
s.rindex(t)#returns: Same as index, but searches right to left
Sumber: Python: Panduan Memulai Cepat Visual, Toby Donaldson
jika string didefinisikan sebagai input_string = "this is a sentence"dan jika kita ingin menemukan kemunculan pertama dari kata tersebut is, apakah itu akan berhasil? # first occurence of word in a sentence input_string = "this is a sentence" # return the index of the word matching_word = "is" input_string.find("is")
Regresor
1
untuk mengimplementasikan ini dengan cara algoritmik, dengan tidak menggunakan fungsi bawaan python. Ini dapat diimplementasikan sebagai
def find_pos(string,word):for i in range(len(string)- len(word)+1):if string[i:i+len(word)]== word:return i
return'Not Found'
string ="the dude is a cool dude"
word ='dude1'print(find_pos(string,word))# output 4
Sepertinya indentasi Anda tidak aktif dan Anda lupa menutup tanda kutip Anda. Penjelasan kode Anda dan mengapa itu akan menyelesaikan masalah juga membantu; lihat Bagaimana Menjawab
camille
maaf saya mengeditnya ... kode saya menemukan kemunculan pertama surat dalam string dan mengembalikan tempatnya
Benmadani Yazid
0
verse = "Jika kamu bisa menjaga kepalamu ketika semua tentang kamu \ n Kehilangan pikiran mereka dan menyalahkanmu, \ nJika kamu dapat mempercayai dirimu sendiri ketika semua orang meragukanmu, \ n Tapi berikan kelonggaran atas keraguan mereka juga; \ nJika kamu bisa menunggu dan jangan lelah dengan menunggu, \ n Atau dibohongi, jangan berbohong, \ nAtau dibenci, jangan menyerah pada kebencian, \ n Namun jangan terlihat terlalu baik, atau bicara terlalu bijak : "
enter code here
print(verse)#1. What is the length of the string variable verse?
verse_length = len(verse)print("The length of verse is: {}".format(verse_length))#2. What is the index of the first occurrence of the word 'and' in verse?
index = verse.find("and")print("The index of the word 'and' in verse is {}".format(index))
-1
jika tidak ditemukanis
dari kalimat tersebutthis is a cool dude
? Saya mencoba metode find tetapi mengembalikan indeks 2, bukan 5. Bagaimana cara mencapai ini menggunakan find ()?Ikhtisar Cepat:
index
danfind
Di samping
find
metode ada jugaindex
.find
danindex
keduanya menghasilkan hasil yang sama: mengembalikan posisi kejadian pertama, tetapi jika tidak ada yang ditemukanindex
akan meningkatkan pengembalianValueError
sementara . Secara speedwise, keduanya memiliki hasil benchmark yang sama.find
-1
Pengetahuan tambahan:
rfind
danrindex
:Jadi jika kemungkinan elemen yang Anda cari mendekati akhir daripada di awal daftar,
rfind
ataurindex
akan lebih cepat.Sumber: Python: Panduan Memulai Cepat Visual, Toby Donaldson
sumber
input_string = "this is a sentence"
dan jika kita ingin menemukan kemunculan pertama dari kata tersebutis
, apakah itu akan berhasil?# first occurence of word in a sentence input_string = "this is a sentence" # return the index of the word matching_word = "is" input_string.find("is")
untuk mengimplementasikan ini dengan cara algoritmik, dengan tidak menggunakan fungsi bawaan python. Ini dapat diimplementasikan sebagai
sumber
sumber
verse = "Jika kamu bisa menjaga kepalamu ketika semua tentang kamu \ n Kehilangan pikiran mereka dan menyalahkanmu, \ nJika kamu dapat mempercayai dirimu sendiri ketika semua orang meragukanmu, \ n Tapi berikan kelonggaran atas keraguan mereka juga; \ nJika kamu bisa menunggu dan jangan lelah dengan menunggu, \ n Atau dibohongi, jangan berbohong, \ nAtau dibenci, jangan menyerah pada kebencian, \ n Namun jangan terlihat terlalu baik, atau bicara terlalu bijak : "
sumber