Apa itu indeks irisan di python?

String dalam python mendukung pengindeksan dan pemotongan. Untuk mengekstrak satu karakter dari sebuah string, ikuti string dengan indeks karakter yang diinginkan dikelilingi oleh tanda kurung siku ([ ]), mengingat bahwa karakter pertama dari sebuah string memiliki indeks nol

>>> what = 'This parrot is dead' >>> what[3] 's' >>> what[0] 'T' Jika subskrip yang Anda berikan di antara tanda kurung kurang dari nol, python menghitung dari akhir string, dengan subskrip -1 mewakili karakter terakhir dalam string. >>> what[-1] 'd' _

Untuk mengekstrak potongan string yang berdekatan (dikenal sebagai irisan), gunakan subskrip yang terdiri dari posisi awal diikuti dengan titik dua (. , akhirnya diikuti oleh satu lagi dari posisi akhir irisan yang ingin Anda ekstrak. Perhatikan bahwa pemotongan berhenti tepat sebelum nilai kedua

>>> what[0:4] 'This' >>> what[5:11] 'parrot' Satu cara untuk berpikir tentang indeks dalam sebuah irisan adalah dengan memberikan posisi awal sebagai nilai sebelum titik dua, dan posisi awal ditambah jumlah karakter dalam irisan setelah titik dua

Untuk kasus khusus ketika sebuah irisan dimulai pada awal string, atau berlanjut hingga akhir, Anda dapat menghilangkan indeks pertama atau kedua. Jadi untuk mengekstrak semua kecuali karakter pertama dari sebuah string, Anda dapat menggunakan subskrip 1.

>>> what[1:] 'his parrot is dead' Untuk mengekstrak 3 karakter pertama dari string yang dapat Anda gunakan. 3. >>> what[:3] 'Thi' Jika Anda menggunakan nilai untuk indeks irisan yang lebih besar dari panjang string, python tidak memunculkan pengecualian, tetapi memperlakukan indeks seolah-olah itu adalah panjang string

Seperti biasa, variabel dan konstanta bilangan bulat dapat dicampur secara bebas

>>> start = 3 >>> finish = 8 >>> what[start:finish] 's par' >>> what[5:finish] 'par'

Menggunakan indeks kedua yang kurang dari atau sama dengan indeks pertama akan menghasilkan string kosong. Jika salah satu indeks bukan bilangan bulat, pengecualian TypeError dimunculkan kecuali, tentu saja, indeks itu dihilangkan

Fungsi slice(start, stop, step)5 mengembalikan objek irisan yang digunakan untuk mengiris urutan apa pun (string, tupel, daftar, rentang, atau byte)

Contoh

text = 'Python Programing'

# get slice object to slice Python sliced_text = slice(6)

print(text[sliced_text]) # Output: Python

slice() Sintaks

Sintaks dari slice(start, stop, step)_5 adalah

slice(start, stop, step)_

iris() Parameter

slice(start, stop, step)_5 dapat mengambil tiga parameter

  • mulai (opsional) - Mulai bilangan bulat tempat pemotongan objek dimulai. Default ke slice(start, stop, step)_8 jika tidak disediakan
  • stop - Bilangan bulat hingga pemotongan dilakukan. Pemotongan berhenti pada indeks berhenti -1 (elemen terakhir)
  • step (opsional) - Nilai bilangan bulat yang menentukan kenaikan antara setiap indeks untuk pemotongan. Default ke slice(start, stop, step)_8 jika tidak diberikan

slice() Mengembalikan Nilai

slice(start, stop, step)_5 mengembalikan objek irisan

Catatan. Kita dapat menggunakan slice dengan objek apa pun yang mendukung protokol urutan (mengimplementasikan metode # contains indices (0, 1, 2) result1 = slice(3) print(result1) # contains indices (1, 3) print(slice(1, 5, 2))1 dan # contains indices (0, 1, 2) result1 = slice(3) print(result1) # contains indices (1, 3) print(slice(1, 5, 2))2)

Contoh 1. Buat objek slice untuk mengiris

# contains indices (0, 1, 2) result1 = slice(3) print(result1) # contains indices (1, 3) print(slice(1, 5, 2))

Keluaran

slice(None, 3, None) slice(1, 5, 2)

Di sini, # contains indices (0, 1, 2) result1 = slice(3) print(result1) # contains indices (1, 3) print(slice(1, 5, 2))3 dan # contains indices (0, 1, 2) result1 = slice(3) print(result1) # contains indices (1, 3) print(slice(1, 5, 2))4 adalah objek irisan

Sekarang kita tahu tentang objek slice, mari kita lihat bagaimana kita bisa mendapatkan substring, sub-list, sub-tuple, dll. dari potongan objek

Jawaban di atas tidak membahas penugasan slice. Untuk memahami penugasan irisan, ada gunanya menambahkan konsep lain ke seni ASCII

+---+---+---+---+---+---+ | P | y | t | h | o | n | +---+---+---+---+---+---+ Slice position: 0 1 2 3 4 5 6 Index position: 0 1 2 3 4 5 >>> p = ['P','y','t','h','o','n'] # Why the two sets of numbers: # indexing gives items, not lists >>> p[0] 'P' >>> p[5] 'n' # Slicing gives lists >>> p[0:1] ['P'] >>> p[0:2] ['P','y']

Satu heuristik adalah, untuk potongan dari nol hingga n, pikirkan. "nol adalah awal, mulai dari awal dan ambil n item dalam daftar"

>>> p[5] # the last of six items, indexed from zero 'n' >>> p[0:5] # does NOT include the last item! ['P','y','t','h','o'] >>> p[0:6] # not p[0:5]!!! ['P','y','t','h','o','n']

Heuristik lainnya adalah, "untuk irisan apa pun, ganti awal dengan nol, terapkan heuristik sebelumnya untuk mendapatkan akhir daftar, lalu hitung kembali angka pertama untuk memotong item dari awal"

>>> p[0:4] # Start at the beginning and count out 4 items ['P','y','t','h'] >>> p[1:4] # Take one item off the front ['y','t','h'] >>> p[2:4] # Take two items off the front ['t','h'] # etc.

Aturan pertama penugasan slice adalah karena slicing mengembalikan daftar, penugasan slice memerlukan daftar (atau iterable lainnya)

>>> p[2:3] ['t'] >>> p[2:3] = ['T'] >>> p ['P','y','T','h','o','n'] >>> p[2:3] = 't' Traceback (most recent call last): File "", line 1, in TypeError: can only assign an iterable

Aturan kedua penetapan irisan, yang juga dapat Anda lihat di atas, adalah bahwa bagian apa pun dari daftar yang dikembalikan oleh pengindeksan irisan, itu adalah bagian yang sama yang diubah oleh penetapan irisan

>>> p[2:4] ['T','h'] >>> p[2:4] = ['t','r'] >>> p ['P','y','t','r','o','n']

Aturan ketiga penugasan slice adalah, daftar yang ditugaskan (iterable) tidak harus memiliki panjang yang sama;

>>> p = ['P','y','t','h','o','n'] # Start over >>> p[2:4] = ['s','p','a','m'] >>> p ['P','y','s','p','a','m','o','n']

Bagian tersulit untuk membiasakan diri adalah penugasan ke irisan kosong. Dengan menggunakan heuristik 1 dan 2, mudah bagi Anda untuk mengindeks irisan kosong

>>> p = ['P','y','t','h','o','n'] >>> p[0:4] ['P','y','t','h'] >>> p[1:4] ['y','t','h'] >>> p[2:4] ['t','h'] >>> p[3:4] ['h'] >>> p[4:4] []

Dan setelah Anda melihatnya, penugasan irisan ke irisan kosong juga masuk akal

>>> p = ['P','y','t','h','o','n'] >>> p[2:4] = ['x','y'] # Assigned list is same length as slice >>> p ['P','y','x','y','o','n'] # Result is same length >>> p = ['P','y','t','h','o','n'] >>> p[3:4] = ['x','y'] # Assigned list is longer than slice >>> p ['P','y','t','x','y','o','n'] # The result is longer >>> p = ['P','y','t','h','o','n'] >>> p[4:4] = ['x','y'] >>> p ['P','y','t','h','x','y','o','n'] # The result is longer still

Perhatikan bahwa, karena kita tidak mengubah angka kedua dari potongan (4), item yang disisipkan selalu bertumpuk di atas 'o', bahkan saat kita menugaskan ke potongan kosong. Jadi posisi untuk penugasan irisan kosong adalah perluasan logis dari posisi penugasan irisan tidak kosong

Mencadangkan sedikit, apa yang terjadi jika Anda terus melanjutkan prosesi penghitungan awal potongan kami?

>>> p = ['P','y','t','h','o','n'] >>> p[0:4] ['P','y','t','h'] >>> p[1:4] ['y','t','h'] >>> p[2:4] ['t','h'] >>> p[3:4] ['h'] >>> p[4:4] [] >>> p[5:4] [] >>> p[6:4] []

Dengan mengiris, setelah selesai, selesai; . Di Python Anda tidak mendapatkan langkah negatif kecuali Anda secara eksplisit memintanya dengan menggunakan angka negatif

>>> p[5:3:-1] ['n','o']

Ada beberapa konsekuensi aneh pada aturan "setelah Anda selesai, Anda selesai".

>>> p[5] # the last of six items, indexed from zero 'n' >>> p[0:5] # does NOT include the last item! ['P','y','t','h','o'] >>> p[0:6] # not p[0:5]!!! ['P','y','t','h','o','n'] 0

Faktanya, dibandingkan dengan pengindeksan, pemotongan Python sangat anti-kesalahan

>>> p[5] # the last of six items, indexed from zero 'n' >>> p[0:5] # does NOT include the last item! ['P','y','t','h','o'] >>> p[0:6] # not p[0:5]!!! ['P','y','t','h','o','n'] 1

Ini terkadang berguna, tetapi juga dapat menyebabkan perilaku yang agak aneh

>>> p[5] # the last of six items, indexed from zero 'n' >>> p[0:5] # does NOT include the last item! ['P','y','t','h','o'] >>> p[0:6] # not p[0:5]!!! ['P','y','t','h','o','n'] 2

Bergantung pada aplikasi Anda, itu mungkin. atau mungkin tidak. menjadi apa yang Anda harapkan di sana

Di bawah ini adalah teks jawaban asli saya. Ini bermanfaat bagi banyak orang, jadi saya tidak ingin menghapusnya

Apa itu irisan indeks?

“Pengindeksan” berarti mengacu pada elemen iterable dengan posisinya di dalam iterable. “Mengiris” berarti mendapatkan subkumpulan elemen dari iterable berdasarkan indeksnya .

Apa yang dilakukan slice dengan Python?

Python slice() Fungsi . Anda dapat menentukan di mana memulai pemotongan, dan di mana harus mengakhiri. Anda juga dapat menentukan langkahnya, yang memungkinkan Anda untuk e. g. iris hanya setiap item lainnya. specify how to slice a sequence. You can specify where to start the slicing, and where to end. You can also specify the step, which allows you to e.g. slice only every other item.

Apa itu pengindeksan dan pemotongan, jelaskan dengan contoh di Python?

Apa itu Pengindeksan dan Pemotongan? . Pengindeksan digunakan untuk mendapatkan elemen individu. Mengiris. Slicing digunakan untuk mendapatkan urutan elemen . Pengindeksan dan Pemotongan dapat dilakukan dalam jenis Urutan Python seperti daftar, string, tuple, objek jangkauan.

Apa [. 1 dengan Python?

Ilmu Data Praktis menggunakan Python . -1]. [. -1] membalik urutan. Dengan cara yang sama, kita dapat mengiris string seperti ini. to display the 1st element to last element in steps of 1 in reverse order, we use the [::-1]. The [::-1] reverses the order. In a similar way, we can slice strings like this.

Postingan terbaru

LIHAT SEMUA