a = "programming in python is Fun"
a.find("i") = 8
Ia mengembalikan indeks kemunculan pertama "i"
di a.
Apakah mungkin menemukan indeks "i"
kedua?
a = "programming in python is Fun"
a.find("i") = 8
Ia mengembalikan indeks kemunculan pertama "i"
di a.
Apakah mungkin menemukan indeks "i"
kedua?
find()
juga mengambil indeks awal opsional yang dapat Anda gunakan sebagai:
a = "programming in python is Fun"
first = a.find('i')
print(a.find('i',first+1))
Anda dapat menggunakan enumerate()
dengan pemahaman daftar untuk menemukan semua indeks sebagai:
s = "programming in python is Fun"
my_char = "i"
my_indexes = [i for i, x in enumerate(s) if x == my_char]
# where `my_indexes` holds:
# [8, 12, 22]
Di sini my_char
adalah karakter yang ingin Anda cari indeksnya. Dan my_indexes
adalah daftar yang berisi indeks setiap kali my_char
ditemukan dalam string. Silakan lihat enumerate()
dokumen untuk detail lebih lanjut.
Oleh karena itu, Anda dapat mengakses indeks kemunculan kedua sebagai:
>>> my_indexes[1]
12
.find()
di atas kertas, tapi menurut saya algo lebih baik. Jika saya boleh, hapus , x in enumerate
itu, ì for i in s
akan baik-baik saja, string hanyalah daftar karakter.
- person Loïc; 03.02.2021
Anda juga dapat menggunakan numpy
dengan cara berikut:
import numpy as np
a = "programming in python is Fun"
x = np.frombuffer(a.encode(), dtype=np.uint8)
np.where(x == ord('i')) # (array([ 8, 12, 22]),)
Menggunakan np.frombuffer
menafsirkan ulang str sebagai buffer char dan kemudian menggunakan < a href="https://numpy.org/doc/stable/reference/generated/numpy.where.html" rel="nofollow noreferrer">np.where
akan mengembalikan semua indeks yang cocok dengan karakter Anda tertarik (atau lebih tepatnya bilangan bulat yang mewakili karakter Unicode, menggunakan ord
< /a>).