Bisakah Anda mengiris satu set dengan python?

Mampu mengiris urutan secara efisien dengan Python (seperti daftar, string, dan tupel) adalah salah satu keterampilan paling penting yang harus dimiliki saat memprogram. Untungnya, python menyediakan sintaks pengindeksan yang sangat memudahkan proses pemotongan dan membuatnya jauh lebih intuitif

Dalam tutorial ini, pertama-tama kita akan meninjau cara mengindeks urutan dan kemudian beralih ke mengiris urutan, khususnya daftar dan string. Selanjutnya, kami akan membahas beberapa perbedaan penting antara daftar pemotongan dan string pemotongan. Kami kemudian akan meninjau tugas irisan dalam daftar. Dan terakhir, kita akan melihat apa yang sebenarnya terjadi saat kita menggunakan sintaks pengindeksan di Python

Mengindeks Urutan

Sebelum kita mulai dengan mengiris, mari tinjau secara singkat cara mengindeks elemen secara berurutan (khususnya daftar)

Ingatlah bahwa kita dapat mengakses elemen individual dalam daftar dengan menggunakan indeksnya di dalam tanda kurung siku. Mari kita lihat daftar angka di bawah ini

num_list = [0,5,10,15,20,25,30,35,40]
0,1, 2, 3, 4, 5, 6, 7, 8
-9,-8,-7,-6,-5,-4,-3,-2,-1

Indeks suatu elemen dalam urutan adalah lokasinya dalam urutan itu. Dalam contoh di atas, kami memiliki daftar angka, num_list, dan angka di bawah daftar itu mewakili indeks elemen yang sesuai. Seperti yang kita ingat, kita dapat mengindeks urutan kita mulai dari awal (dari kiri) dengan pengindeksan positif dimulai dengan indeks 0, atau mulai dari akhir urutan (dari kanan) dengan pengindeksan negatif, dimulai dengan indeks -1

Dengan kata lain, jika kita ingin mengambil angka 10 (atau elemen ketiga) dari num_list, kita bisa menggunakan indeks positif 2, atau indeks negatif -7

num_list[2] 
#10
or num_list[-7]
#10
_

Jika kita ingin mendapatkan angka terakhir dalam daftar kita, yaitu 40, kita dapat melakukannya dengan menggunakan indeks 8 atau -1

num_list[8]
#40
ornum_list[-1]
#40

Atau kita bisa menggunakan fungsi len() sebagai berikut

num_list[len(num_list)-1]
#40

Jika kami menggunakan nilai indeks yang tidak ada dalam daftar kami atau di luar jangkauan, kami akan menerima IndexError

num_list[12]
#IndexError: list index out of range
num_list[-12]
#IndexError: list index out of range
_

Sekarang setelah kita meninjau cara mengindeks urutan menggunakan pengindeksan positif dan negatif, mari kita lihat pemotongan

Dua Fungsi Keren Untuk Diketahui dengan Python

Pelajari cara membuat tabel dengan tabulasi dan menampilkan bilah progres dengan tqdm di Python

menuju ilmu data. com

Mengiris Urutan

Kami baru saja melihat bagaimana pengindeksan dapat digunakan untuk mengambil elemen individual dari daftar. Mengiris, di sisi lain, memungkinkan kita mendapatkan bagian dari urutan kita, seperti daftar atau string

Kadang-kadang untuk memahami pemotongan, akan berguna untuk membayangkan bahwa indeks menunjuk di antara elemen, bukan ke elemen itu sendiri. Walaupun ini hanya berguna saat nilai langkahnya positif, artinya saat kita mengiris dari kiri ke kanan. Lebih lanjut tentang nilai langkah nanti

num_list = [0,5,10,15,20,25,30,35,40] +---+---+----+----+----+----+----+----+----+
| 0 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 |
+---+---+----+----+----+----+----+----+----+
0 1 2 3 4 5 6 7 8 9
-9 -8 -7 -6 -5 -4 -3 -2 -1

Sintaks untuk mengiris urutan adalah sebagai berikut

variabel[mulai. berhenti. melangkah]

Untuk mengiris urutan, kita perlu menggunakan titik dua di dalam tanda kurung siku. Dengan kata lain, usus besar (. ) dalam notasi subskrip [kurung siku] buat notasi irisan. Meskipun ada tiga kemungkinan nilai yang dapat kita berikan di dalam tanda kurung (nilai awal, nilai berhenti, dan nilai langkah/langkah), kita sebenarnya tidak harus memberikan ketiganya kecuali jika diperlukan, seperti yang akan kita lihat di bawah

Mari kita lihat beberapa contoh

Menentukan Nilai Mulai dan Berhenti

Salah satu cara kita dapat mengiris urutan, seperti daftar, adalah dengan menentukan nilai mulai dan berhenti. Dengan kata lain, jika kita menginginkan semua elemen di antara dua titik tertentu dalam daftar kita, kita dapat menggunakan format berikut

variabel[mulai. berhenti]

variabel[mulai. stop] mengembalikan bagian dari variabel yang dimulai dengan posisi mulai, dan hingga tetapi tidak termasuk posisi berhenti

Misalnya, jika kita ingin mendapatkan semua elemen dari indeks 2 sampai dengan indeks 6, kita dapat melakukannya sebagai berikut

num_list = [0,5,10,15,20,25,30,35,40]num_list[2:7]
#[10,15,20,25,30]
_

Perhatikan bagaimana nilai awal bersifat inklusif, tetapi nilai akhir bersifat eksklusif. Jadi, kita mulai dengan indeks 2, yang merupakan angka 10, dan lanjutkan terus ke indeks 6 tetapi tidak termasuk indeks 7, yang akan menjadi angka 30 pada indeks 6. Jika kita membayangkan indeks berada di antara elemen (seperti yang terlihat di atas), maka diilustrasikan lebih lanjut, karena indeks 7 berada sebelum angka 35. Karena kami tidak memberikan nilai langkah, nilai langkah default adalah 1. Jadi, kita mulai dengan indeks 2, lalu ambil 1 langkah ke indeks 3, lalu 1 langkah ke indeks 4, dan seterusnya. Dengan kata lain, karena nilai langkahnya positif, kami menaikkan indeks sebesar 1 (bergerak ke kanan) saat kami memotong daftar kami

Menentukan Hanya Nilai Awal

Jika kita ingin memulai dari nomor tertentu dan menelusuri seluruh daftar, maka kita hanya perlu memberikan nilai awal

variabel[mulai. ]

variabel[mulai. ] mengembalikan bagian dari variabel yang dimulai dengan posisi awal, hingga akhir urutan

Misalnya, jika kita ingin mengambil semua elemen dari indeks kedua melalui seluruh daftar, kita dapat menggunakan kode berikut

num_list = [0,5,10,15,20,25,30,35,40]num_list[2:]
#[10,15,20,25,30,35,40]

Seperti yang bisa kita lihat, jika kita hanya memberikan indeks sebelum tanda titik dua, maka itu akan menjadi indeks awal kita, dan kita akan mendapatkan sisa elemen dalam daftar (karena nilai langkahnya masih 1)

Menentukan Hanya Nilai Berhenti

Jika kita ingin memulai dari awal daftar dan naik ke indeks tertentu, maka kita hanya perlu memberikan nilai stop

variabel[. berhenti]

variabel[. stop] mengembalikan bagian dari variabel yang dimulai pada awal urutan, hingga tetapi tidak termasuk posisi stop

Misalnya, jika kita ingin mengambil semua elemen dari awal daftar hingga dan termasuk indeks 7, kita dapat melakukannya sebagai berikut

num_list = [0,5,10,15,20,25,30,35,40]num_list[:8]ornum_list[:-1]#[0,5,10,15,20,25,30,35]
_

Jadi, jika tidak ada angka yang diberikan untuk nilai awal, maka diasumsikan bahwa kita ingin memulai dari indeks 0. Dan karena kami ingin mengambil semua elemen hingga indeks 7, kami akan menggunakan nilai stop 8 karena bersifat eksklusif. Kita juga bisa menggunakan -1 sebagai nilai stop

Menggunakan Indeks Positif dan Negatif

Kami juga dapat mencampur dan mencocokkan indeks positif dan negatif. Misalnya, jika kita ingin mengambil semua elemen antara indeks 2 sampai dengan indeks 7, kita dapat melakukannya sebagai berikut

num_list = [0,5,10,15,20,25,30,35,40]num_list[2:8]or num_list[2:-1]ornum_list[-7:-1]ornum_list[-7:8]#[10,15,20,25,30,35]
_

Perhatikan bahwa dalam semua contoh, nilai stop berada di sebelah kanan nilai awal, karena kita menggunakan nilai langkah positif. Dengan kata lain, nilai stop harus searah dengan nilai step, dalam kaitannya dengan nilai start. Jika nilai langkah positif, maka nilai berhenti harus tepat dari nilai awal. Jika nilai langkah negatif, maka nilai berhenti harus ditinggal dari nilai awal. Lebih lanjut tentang itu nanti

Mengambil Seluruh Daftar

Kami juga dapat mengambil seluruh daftar hanya dengan menggunakan tanda titik dua tanpa nilai mulai atau berhenti

variabel[. ]

variabel[. ] mengembalikan seluruh urutan

num_list[2] 
#10
or num_list[-7]
#10
_0

Menjadi Programmer Python yang Lebih Efisien

Pelajari cara terbaik untuk membuat daftar dan menyelesaikan tugas lain dengan Python

menuju ilmu data. com

Nilai Langkah (atau Langkah).

Sejauh ini kita hanya menentukan nilai mulai dan/atau berhenti, di mana kita mulai dari nilai awal, dan berakhir tepat sebelum nilai berhenti (karena bersifat eksklusif). Tetapi bagaimana jika kita tidak menginginkan semua elemen di antara kedua titik tersebut?

Katakanlah kita menginginkan setiap nilai lain dalam daftar kita, mulai dari indeks 0. Atau mungkin kita hanya menginginkan elemen pada indeks genap. Kita dapat melakukannya dengan menggunakan nilai langkah

variabel[. melangkah]

num_list[2] 
#10
or num_list[-7]
#10
_1

Karena kami tidak menentukan nilai mulai atau berhenti, diasumsikan bahwa kami ingin memulai dari awal urutan dan menelusuri seluruh daftar. Jadi dimulai dari indeks 0, lalu ke indeks 2 (karena langkahnya adalah 2), lalu ke indeks 4, dan seterusnya

Sebelumnya, kami menyebutkan bahwa nilai berhenti harus searah dengan nilai langkah relatif terhadap nilai awal. Dengan kata lain, jika nilai langkahnya positif, artinya kita bergerak ke kanan, nilai stop harus berada di sebelah kanan nilai awal. Jika nilai langkah negatif, maka nilai berhenti harus berada di sebelah kiri nilai awal. Jika tidak, daftar kosong dikembalikan

num_list[2] 
#10
or num_list[-7]
#10
_2

Seperti yang dapat kita lihat, pada kedua contoh, nilai awal adalah 8, dan nilai akhir adalah 5, sehingga nilai akhir berada di sebelah kiri nilai awal. Pada contoh pertama, nilai langkahnya adalah +1. Karena nilai stop berada di sebelah kiri nilai awal, dan nilai langkah kita positif, daftar kosong dikembalikan, karena kita tidak dapat bergerak ke arah nilai stop. Namun, pada contoh kedua, kami mengubah nilai langkah menjadi -1. Jadi, kita mulai dari indeks 8, yaitu 40, pindahkan 1 indeks ke arah negatif atau kiri ke indeks 7, yaitu 35, lalu ke indeks 6, yaitu 30. Kami tidak pergi ke indeks 5 karena nilai stop bersifat eksklusif

Membalikkan Urutan

Mungkin penerapan praktis yang paling penting dari nilai langkah adalah membalikkan urutan. Misalnya, jika kita ingin mengambil seluruh daftar dalam urutan terbalik, kita dapat melakukannya dengan menggunakan -1 untuk nilai langkahnya

num_list[2] 
#10
or num_list[-7]
#10
_3

Karena kami tidak menentukan nilai mulai atau berhenti, maka seluruh urutan akan diambil. Namun, karena nilai langkah kita adalah -1, ia memperoleh elemen dalam urutan terbalik

Bagaimana jika nilai stop kami lebih besar dari indeks tertinggi yang tersedia dalam urutan kami?

Misalnya, jika kita mencoba yang berikut ini

num_list[2] 
#10
or num_list[-7]
#10
_4

Seperti yang bisa kita lihat, bahkan jika kita meminta lebih banyak item daripada yang ada dalam urutan kita, itu hanya mengembalikan elemen apa pun yang ada dan tidak memberi kita kesalahan. Sebaliknya, jika kita mencoba mengindeks satu elemen yang berada di luar jangkauan (alih-alih mengiris), maka kita akan mendapatkan IndexError seperti yang kita lihat sebelumnya

num_list[2] 
#10
or num_list[-7]
#10
_5

Mengiris Tali

Pengindeksan dan pemotongan bekerja dengan cara yang sama untuk string juga. Sekali lagi, kita dapat membayangkan indeks antar karakter jika kita menggunakan nilai langkah positif sebagai berikut

num_list[2] 
#10
or num_list[-7]
#10
_6

Jadi, untuk mendapatkan substring 'yt' melalui pemotongan, kita dapat melakukannya sebagai berikut

num_list[2] 
#10
or num_list[-7]
#10
_7

Untuk membalikkan string, kita dapat melakukannya dengan menggunakan nilai langkah -1

num_list[2] 
#10
or num_list[-7]
#10
_8

Contoh Palindrom

Mari gunakan apa yang telah kita pelajari untuk menyelesaikan pertanyaan pengkodean python yang sangat umum ditanyakan. Kami ingin menulis fungsi yang mengambil string, dan mengembalikan apakah string itu palindrom atau tidak. Sebuah string adalah palindrom jika kebalikan dari string identik dengan string asli. Misalnya, 'kewarganegaraan' adalah palindrom, tetapi 'radio' bukan, karena kebalikan dari 'radio' adalah 'oidar', tetapi kebalikan dari 'kewarganegaraan' adalah 'kewarganegaraan'

Kita baru saja mempelajari cara membalikkan urutan dengan menggunakan nilai langkah -1. Jadi kita dapat dengan mudah menulis fungsi yang menyelesaikan ini sebagai berikut

num_list[2] 
#10
or num_list[-7]
#10
_9

Dan itu dia. Ekspresi kata == kata[. -1] dievaluasi menjadi Benar atau Salah. Jika string yang kita berikan sama dengan kebalikannya, maka ekspresi dievaluasi menjadi True, dan True dikembalikan. Jika string yang kita berikan tidak sama dengan kebalikannya, maka ekspresi dievaluasi menjadi False, dan False dikembalikan

num_list[8]
#40
ornum_list[-1]
#40
0

Tugas Iris

Jika kita ingat, daftar adalah objek yang bisa berubah dengan python. Dengan kata lain, mereka dapat dimutasi, atau diubah. Dengan demikian, kita dapat menggunakan operasi penugasan irisan untuk mengubah atau mengedit daftar di tempat

Pengganti

num_list[8]
#40
ornum_list[-1]
#40
1

Perhatikan bagaimana kita bisa mengganti sepotong daftar kita dengan lebih banyak atau lebih sedikit elemen

Penghapusan

Kami juga dapat menghapus sebagian atau potongan daftar menggunakan kata kunci del

num_list[8]
#40
ornum_list[-1]
#40
2

Catatan. String dan tupel tidak dapat diubah. Jadi kami tidak dapat mengedit atau memutasikannya seperti yang kami bisa dengan daftar

Mengiris String vs. Daftar

Mengiris daftar akan mengembalikan salinan daftar itu dan bukan referensi ke daftar asli

Kita bisa melihat ini di sini. jika kita menetapkan irisan daftar kita ke daftar lain, karena irisan daftar mengembalikan salinan dan bukan referensi ke daftar asli, kita dapat memodifikasi daftar baru (karena daftar dapat diubah) tanpa memengaruhi daftar asli

num_list[8]
#40
ornum_list[-1]
#40
_3

Sebaliknya, saat kita mengiris string, referensi ke objek string asli dikembalikan, dan bukan salinannya. Dan ingat, string tidak dapat diubah dengan Python

Kita dapat menggunakan operator identitas Python (adalah) dan operator kesetaraan (==) untuk mengonfirmasi bahwa mengiris daftar mengembalikan salinan atau objek yang berbeda dari daftar asli, tetapi mengiris string mengembalikan referensi ke objek string asli

num_list[8]
#40
ornum_list[-1]
#40
_4

Operator kesetaraan (==) memeriksa apakah nilainya sama. Operator identitas (adalah) memeriksa apakah kedua variabel menunjuk ke objek yang sama di memori

Panduan Utama untuk Menyortir dengan Python

Cara mengurutkan daftar, tupel, string, dan kamus dengan python

naik tingkat. terhubung. com

Fungsi Iris

Saat kita menggunakan sintaks pengindeksan di python, yang mencakup penggunaan titik dua di dalam tanda kurung siku, fungsi bawaan sebenarnya digunakan untuk membuat objek slice

irisan (berhenti)

iris(mulai, hentikan[,langkah])

Fungsi irisan dapat digunakan dalam dua cara berbeda untuk membuat objek irisan (mirip dengan fungsi rentang yang membuat objek rentang). Jika kita meneruskan satu argumen ke fungsi slice, maka itu akan menjadi nilai stop. Jika kita meneruskan tiga argumen ke fungsi slice, maka mereka akan mengambil nilai mulai, berhenti, dan langkah. Dengan kata lain, parameter awal dan langkah akan default ke Tidak ada

Berikut adalah beberapa contoh yang menunjukkan objek irisan yang digunakan saat menggunakan sintaks pengindeksan untuk mengiris daftar

num_list[8]
#40
ornum_list[-1]
#40
5

Menggunakan fungsi slice untuk membuat objek slice dapat berguna jika kita ingin menyimpan objek slice tertentu dan menggunakannya berkali-kali. Kita dapat melakukannya dengan terlebih dahulu membuat instance objek slice dan menugaskannya ke variabel, lalu menggunakan variabel tersebut di dalam tanda kurung siku

num_list[8]
#40
ornum_list[-1]
#40
6

Jika Anda senang membaca cerita seperti ini dan ingin mendukung saya sebagai penulis, pertimbangkan untuk mendaftar menjadi anggota Medium. Ini $5 per bulan, memberi Anda akses tak terbatas ke cerita di Medium. Jika Anda mendaftar menggunakan tautan saya, saya akan mendapat komisi kecil

Bergabunglah dengan Medium dengan tautan rujukan saya — Luay Matalka

Baca setiap cerita dari Luay Matalka (dan ribuan penulis lain di Medium). Biaya keanggotaan Anda secara langsung mendukung…

lmatalka90. medium. com

Kesimpulan

Dalam tutorial ini, pertama-tama kita meninjau bahwa pengindeksan urutan berarti mengekstrak satu elemen menggunakan dengan menggunakan indeks positif atau negatifnya di dalam tanda kurung siku. Kami kemudian membandingkan pengindeksan urutan untuk mengiris urutan, yang dapat mengambil sebagian dari urutan. Kami belajar cara mengiris urutan dengan tanda kurung siku dan titik dua, termasuk berbagai cara untuk menentukan bagian mana yang ingin kami ambil. Dan karena daftar dapat diubah dengan Python, kami melihat bagaimana kami dapat menggunakan tugas irisan untuk mengubah bagian dari daftar kami. Kami kemudian melihat perbedaan antara mengiris daftar dan mengiris string, dalam mengiris daftar mengembalikan salinan daftar itu, tetapi mengiris string mengembalikan referensi ke objek string asli. Terakhir, kita melihat bagaimana objek slice sebenarnya digunakan saat menggunakan notasi slicing di Python

Bisakah kita menggunakan slicing di set dengan Python?

fungsi irisan Python ().

Apa yang bisa Anda potong dengan Python?

Python mendukung notasi irisan untuk jenis data sekuensial apa pun seperti daftar, string, tupel, byte, bytearray, dan rentang . Juga, setiap struktur data baru dapat menambahkan dukungannya juga. Ini sangat digunakan (dan disalahgunakan) di perpustakaan NumPy dan Pandas, yang sangat populer di Pembelajaran Mesin dan Ilmu Data.

Apa yang dilakukan set () dengan Python?

set() digunakan untuk mengonversi salah satu iterable menjadi urutan elemen iterable dengan elemen yang berbeda , biasa disebut Set. Parameter. Setiap urutan iterable seperti daftar, tupel atau kamus. Pengembalian. Himpunan kosong jika tidak ada elemen yang dilewatkan.

Bisakah tupel Python diiris?

Kita bisa menggunakan slicing di tuple Cara saya sama seperti yang kita gunakan di string dan list. Pemotongan Tuple pada dasarnya digunakan untuk mendapatkan berbagai item. Selanjutnya, kami melakukan pemotongan tuple menggunakan operator pemotongan. Kita dapat mewakili operator pengiris dalam sintaks [mulai. berhenti. melangkah].