Apa itu mengiris dan mengiris dengan python?

Dalam Python, beberapa objek seperti my_list = list("Python") print(my_list[0:-1])_0s atau my_list = list("Python") print(my_list[0:-1])1s dapat diiris. Misalnya, Anda bisa mendapatkan elemen pertama dari daftar atau string

Python menggunakan tanda kurung siku (my_list = list("Python") print(my_list[0:-1])2 dan my_list = list("Python") print(my_list[0:-1])3) untuk mengakses elemen tunggal objek yang dapat didekomposisi menjadi beberapa bagian

Namun, ada lebih banyak hal di dalam tanda kurung siku ini daripada sekadar mengakses elemen individual

Pengindeksan Negatif

Mungkin Anda sudah tahu bahwa Anda bisa menggunakan indeks negatif di Python seperti itu

my_list = list("Python") print(my_list[-1])_

Sesuatu seperti my_list = list("Python") print(my_list[0:-1])4 mewakili elemen terakhir dari daftar, my_list = list("Python") print(my_list[0:-1])5 mewakili elemen terakhir kedua dan seterusnya

Colon

Bagaimana jika Anda ingin mengambil lebih dari satu elemen dari daftar? . Dengan Python, tidak masalah

my_list = list("Python") print(my_list[0:-1])

Atau, bagaimana jika Anda menginginkan setiap elemen genap dari daftar Anda, mis. e. elemen my_list = list("Python") print(my_list[0:-1])6, my_list = list("Python") print(my_list[0:-1])7, dll. ? . Kita bisa menulis bahwa sebagai

Objek my_list = list("Python") print(my_list[0:-1])8

Di belakang layar, indeks yang kami gunakan untuk mengakses item individual dari objek mirip my_list = list("Python") print(my_list[0:-1])1 terdiri dari tiga nilai. print(my_list[0:-1] == my_list[:-1]) print(my_list[0:len(my_list):2] == my_list[::2])0. Objek ini disebut objek irisan dan dapat dibuat secara manual dengan fungsi my_list = list("Python") print(my_list[0:-1])8 bawaan

Kita bisa mengecek apakah keduanya memang sama

Coba lihat grafik di atas. Huruf print(my_list[0:-1] == my_list[:-1]) print(my_list[0:len(my_list):2] == my_list[::2])_2 adalah elemen pertama dalam daftar kami, sehingga dapat diindeks oleh my_list = list("Python") print(my_list[0:-1])6 (lihat angka di kotak hijau). Daftar memiliki panjang print(my_list[0:-1] == my_list[:-1]) print(my_list[0:len(my_list):2] == my_list[::2])_4, dan oleh karena itu, elemen pertama dapat diindeks oleh print(my_list[0:-1] == my_list[:-1]) print(my_list[0:len(my_list):2] == my_list[::2])5 (pengindeksan negatif ditampilkan di kotak biru)

Angka-angka dalam kotak hijau dan biru mengidentifikasi satu elemen dari daftar. Sekarang, lihat angka di kotak oranye. Ini menentukan indeks irisan dari daftar. Jika kita menggunakan potongan print(my_list[0:-1] == my_list[:-1]) print(my_list[0:len(my_list):2] == my_list[::2])_6 dan print(my_list[0:-1] == my_list[:-1]) print(my_list[0:len(my_list):2] == my_list[::2])7, setiap elemen di antara angka-angka ini ditutupi oleh potongan. Beberapa contoh

Itu hanya cara mudah untuk mengingat bahwa nilai print(my_list[0:-1] == my_list[:-1]) print(my_list[0:len(my_list):2] == my_list[::2])6 bersifat inklusif dan nilai print(my_list[0:-1] == my_list[:-1]) print(my_list[0:len(my_list):2] == my_list[::2])9 bersifat eksklusif

Default waras

Sebagian besar waktu, Anda ingin my_list = list("Python") print(my_list[0:-1])8 my_list = list("Python") print(my_list[0:-1])1 Anda dengan

  • mulai dari my_list = list("Python") print(my_list[0:-1])_6
  • berhenti di akhir
  • melangkah dengan lebar my_list = list("Python") my_list_2 = my_list[:] print(my_list==my_list_2)3

Oleh karena itu, ini adalah nilai default dan dapat dihilangkan dalam sintaks my_list = list("Python") my_list_2 = my_list[:] print(my_list==my_list_2)4 kami

print(my_list[0:-1] == my_list[:-1]) print(my_list[0:len(my_list):2] == my_list[::2])

Secara teknis, setiap kali kita menghilangkan angka di antara titik dua, angka yang dihilangkan akan memiliki nilai my_list = list("Python") my_list_2 = my_list[:] print(my_list==my_list_2)5

Dan pada gilirannya, objek slice akan menggantikan my_list = list("Python") my_list_2 = my_list[:] print(my_list==my_list_2)5 dengan

  • my_list = list("Python") print(my_list[0:-1])6 untuk nilai awal
  • my_list = list("Python") my_list_2 = my_list[:] print(my_list==my_list_2)_8 untuk nilai berhenti
  • my_list = list("Python") my_list_2 = my_list[:] print(my_list==my_list_2)_3 untuk nilai langkah

Namun, jika nilai print(id(my_list)) print(id(my_list_2))_0 negatif, my_list = list("Python") my_list_2 = my_list[:] print(my_list==my_list_2)5 diganti dengan

  • print(id(my_list)) print(id(my_list_2))_2 untuk nilai awal
  • print(id(my_list)) print(id(my_list_2))_3 untuk nilai berhenti

Misalnya, print(id(my_list)) print(id(my_list_2))_4 secara teknis sama dengan print(id(my_list)) print(id(my_list_2))5

Kasus spesial. Menyalin

Ada kasus khusus untuk mengiris yang terkadang bisa digunakan sebagai jalan pintas

Jika Anda hanya menggunakan nilai default, mis. e. print(id(my_list)) print(id(my_list_2))6 itu akan memberi Anda item yang sama persis

my_list = list("Python") my_list_2 = my_list[:] print(my_list==my_list_2)

Unsur-unsur dalam daftar memang sama. Namun, objek daftar tidak. Kami dapat memeriksanya dengan menggunakan print(id(my_list)) print(id(my_list_2))7 bawaan

print(id(my_list)) print(id(my_list_2))

Perhatikan bahwa setiap operasi irisan mengembalikan objek baru. Salinan urutan kami dibuat saat menggunakan hanya print(id(my_list)) print(id(my_list_2))8

Berikut adalah dua cuplikan kode untuk mengilustrasikan perbedaannya

Contoh

Beberapa contoh yang sering digunakan

Gunakan casePython CodeSetiap elementanpa irisan, atau print(id(my_list)) print(id(my_list_2))8 untuk salinanSetiap elemen keduaindices = my_slice.indices(len(sequence))0 (genap) atau indices = my_slice.indices(len(sequence))1 (ganjil)Setiap elemen kecuali elemen pertamaindices = my_slice.indices(len(sequence))2Setiap elemen kecuali elemen terakhirindices = my_slice.indices(len(sequence))3Setiap elemen kecuali elemen pertama dan terakhirindices = my_slice.indices(len(sequence))4Setiap elemen dalam urutan terbalik________45

Tugas

Memahami lingkaran

Setiap objek my_list = list("Python") print(my_list[0:-1])8 di Python memiliki metode indices = my_slice.indices(len(sequence))9. Metode ini akan mengembalikan sepasang (print(my_list[0:-1] == my_list[:-1]) print(my_list[0:len(my_list):2] == my_list[::2])_6, print(my_list[0:-1] == my_list[:-1]) print(my_list[0:len(my_list):2] == my_list[::2])9, print(id(my_list)) print(id(my_list_2))0) yang dengannya Anda dapat membangun kembali loop yang setara dengan operasi pemotongan. Kedengarannya rumit?

Mari kita mulai dengan urutan

Kemudian, kami membuat objek irisan. Mari kita ambil setiap elemen kedua, i. e. indices = my_slice.indices(len(sequence))0

Karena kita menggunakan my_list = list("Python") my_list_2 = my_list[:] print(my_list==my_list_2)_5s, objek irisan perlu menghitung nilai sequence = list("Python") start = 0 stop = 6 step = 2 i = start while i != stop: print(sequence[i]) i = i+step5 aktual berdasarkan panjang urutan kita. Oleh karena itu, untuk mendapatkan triple indeks Anda, kita perlu meneruskan panjangnya ke metode ________ 45 ______ 9, seperti itu

indices = my_slice.indices(len(sequence))

Ini akan memberi kita triple sequence = list("Python") start = 0 stop = 6 step = 2 i = start while i != stop: print(sequence[i]) i = i+step7. Kami sekarang dapat membuat ulang loop seperti itu

sequence = list("Python") start = 0 stop = 6 step = 2 i = start while i != stop: print(sequence[i]) i = i+step

Ini mengakses elemen yang sama dari daftar kami seperti my_list = list("Python") print(my_list[0:-1])8 itu sendiri

Membuat Kelas Sendiri Sliceable

Python tidak akan menjadi Python jika Anda tidak dapat menggunakan objek irisan di kelas Anda sendiri. Lebih baik lagi, irisan tidak perlu berupa nilai numerik. Kita bisa membuat buku alamat yang dapat diiris berdasarkan indeks abjad

import string class AddressBook: def __init__(self): self.addresses = [] def add_address(self, name, address): self.addresses.append((name, address)) def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)] def __getitem__(self, key): if isinstance(key, str): return self.get_addresses_by_first_letters(key) if isinstance(key, slice): start, stop, step = key.start, key.stop, key.step letters = (string.ascii_uppercase[string.ascii_uppercase.index(start):string.ascii_uppercase.index(stop)+1:step]) return self.get_addresses_by_first_letters(letters) address_book = AddressBook() address_book.add_address("Sherlock Holmes", "221B Baker St., London") address_book.add_address("Wallace and Gromit", "62 West Wallaby Street, Wigan, Lancashire") address_book.add_address("Peter Wimsey", "110a Piccadilly, London") address_book.add_address("Al Bundy", "9764 Jeopardy Lane, Chicago, Illinois") address_book.add_address("John Dolittle", "Oxenthorpe Road, Puddleby-on-the-Marsh, Slopshire, England") address_book.add_address("Spongebob Squarepants", "124 Conch Street, Bikini Bottom, Pacific Ocean") address_book.add_address("Hercule Poirot", "Apt. 56B, Whitehaven Mansions, Sandhurst Square, London W1") address_book.add_address("Bart Simpson", "742 Evergreen Terrace, Springfield, USA") print(string.ascii_uppercase) print(string.ascii_uppercase.index("A")) print(string.ascii_uppercase.index("Z")) print(address_book["A"]) print(address_book["B"]) print(address_book["S"]) print(address_book["A":"H"])

Penjelasan

Metode sequence = list("Python") start = 0 stop = 6 step = 2 i = start while i != stop: print(sequence[i]) i = i+step_9

def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)]

Metode ini memfilter semua alamat milik import string class AddressBook: def __init__(self): self.addresses = [] def add_address(self, name, address): self.addresses.append((name, address)) def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)] def __getitem__(self, key): if isinstance(key, str): return self.get_addresses_by_first_letters(key) if isinstance(key, slice): start, stop, step = key.start, key.stop, key.step letters = (string.ascii_uppercase[string.ascii_uppercase.index(start):string.ascii_uppercase.index(stop)+1:step]) return self.get_addresses_by_first_letters(letters) address_book = AddressBook() address_book.add_address("Sherlock Holmes", "221B Baker St., London") address_book.add_address("Wallace and Gromit", "62 West Wallaby Street, Wigan, Lancashire") address_book.add_address("Peter Wimsey", "110a Piccadilly, London") address_book.add_address("Al Bundy", "9764 Jeopardy Lane, Chicago, Illinois") address_book.add_address("John Dolittle", "Oxenthorpe Road, Puddleby-on-the-Marsh, Slopshire, England") address_book.add_address("Spongebob Squarepants", "124 Conch Street, Bikini Bottom, Pacific Ocean") address_book.add_address("Hercule Poirot", "Apt. 56B, Whitehaven Mansions, Sandhurst Square, London W1") address_book.add_address("Bart Simpson", "742 Evergreen Terrace, Springfield, USA") print(string.ascii_uppercase) print(string.ascii_uppercase.index("A")) print(string.ascii_uppercase.index("Z")) print(address_book["A"]) print(address_book["B"]) print(address_book["S"]) print(address_book["A":"H"])0 dimulai dengan huruf apa saja dalam argumen import string class AddressBook: def __init__(self): self.addresses = [] def add_address(self, name, address): self.addresses.append((name, address)) def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)] def __getitem__(self, key): if isinstance(key, str): return self.get_addresses_by_first_letters(key) if isinstance(key, slice): start, stop, step = key.start, key.stop, key.step letters = (string.ascii_uppercase[string.ascii_uppercase.index(start):string.ascii_uppercase.index(stop)+1:step]) return self.get_addresses_by_first_letters(letters) address_book = AddressBook() address_book.add_address("Sherlock Holmes", "221B Baker St., London") address_book.add_address("Wallace and Gromit", "62 West Wallaby Street, Wigan, Lancashire") address_book.add_address("Peter Wimsey", "110a Piccadilly, London") address_book.add_address("Al Bundy", "9764 Jeopardy Lane, Chicago, Illinois") address_book.add_address("John Dolittle", "Oxenthorpe Road, Puddleby-on-the-Marsh, Slopshire, England") address_book.add_address("Spongebob Squarepants", "124 Conch Street, Bikini Bottom, Pacific Ocean") address_book.add_address("Hercule Poirot", "Apt. 56B, Whitehaven Mansions, Sandhurst Square, London W1") address_book.add_address("Bart Simpson", "742 Evergreen Terrace, Springfield, USA") print(string.ascii_uppercase) print(string.ascii_uppercase.index("A")) print(string.ascii_uppercase.index("Z")) print(address_book["A"]) print(address_book["B"]) print(address_book["S"]) print(address_book["A":"H"])1. Pertama, kita membuat fungsi tidak peka huruf besar/kecil dengan mengonversi import string class AddressBook: def __init__(self): self.addresses = [] def add_address(self, name, address): self.addresses.append((name, address)) def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)] def __getitem__(self, key): if isinstance(key, str): return self.get_addresses_by_first_letters(key) if isinstance(key, slice): start, stop, step = key.start, key.stop, key.step letters = (string.ascii_uppercase[string.ascii_uppercase.index(start):string.ascii_uppercase.index(stop)+1:step]) return self.get_addresses_by_first_letters(letters) address_book = AddressBook() address_book.add_address("Sherlock Holmes", "221B Baker St., London") address_book.add_address("Wallace and Gromit", "62 West Wallaby Street, Wigan, Lancashire") address_book.add_address("Peter Wimsey", "110a Piccadilly, London") address_book.add_address("Al Bundy", "9764 Jeopardy Lane, Chicago, Illinois") address_book.add_address("John Dolittle", "Oxenthorpe Road, Puddleby-on-the-Marsh, Slopshire, England") address_book.add_address("Spongebob Squarepants", "124 Conch Street, Bikini Bottom, Pacific Ocean") address_book.add_address("Hercule Poirot", "Apt. 56B, Whitehaven Mansions, Sandhurst Square, London W1") address_book.add_address("Bart Simpson", "742 Evergreen Terrace, Springfield, USA") print(string.ascii_uppercase) print(string.ascii_uppercase.index("A")) print(string.ascii_uppercase.index("Z")) print(address_book["A"]) print(address_book["B"]) print(address_book["S"]) print(address_book["A":"H"])1 menjadi huruf besar. Kemudian, kami menggunakan daftar import string class AddressBook: def __init__(self): self.addresses = [] def add_address(self, name, address): self.addresses.append((name, address)) def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)] def __getitem__(self, key): if isinstance(key, str): return self.get_addresses_by_first_letters(key) if isinstance(key, slice): start, stop, step = key.start, key.stop, key.step letters = (string.ascii_uppercase[string.ascii_uppercase.index(start):string.ascii_uppercase.index(stop)+1:step]) return self.get_addresses_by_first_letters(letters) address_book = AddressBook() address_book.add_address("Sherlock Holmes", "221B Baker St., London") address_book.add_address("Wallace and Gromit", "62 West Wallaby Street, Wigan, Lancashire") address_book.add_address("Peter Wimsey", "110a Piccadilly, London") address_book.add_address("Al Bundy", "9764 Jeopardy Lane, Chicago, Illinois") address_book.add_address("John Dolittle", "Oxenthorpe Road, Puddleby-on-the-Marsh, Slopshire, England") address_book.add_address("Spongebob Squarepants", "124 Conch Street, Bikini Bottom, Pacific Ocean") address_book.add_address("Hercule Poirot", "Apt. 56B, Whitehaven Mansions, Sandhurst Square, London W1") address_book.add_address("Bart Simpson", "742 Evergreen Terrace, Springfield, USA") print(string.ascii_uppercase) print(string.ascii_uppercase.index("A")) print(string.ascii_uppercase.index("Z")) print(address_book["A"]) print(address_book["B"]) print(address_book["S"]) print(address_book["A":"H"])3 internal kami. Kondisi di dalam tes pemahaman daftar jika salah satu huruf yang disediakan cocok dengan huruf pertama dari nilai import string class AddressBook: def __init__(self): self.addresses = [] def add_address(self, name, address): self.addresses.append((name, address)) def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)] def __getitem__(self, key): if isinstance(key, str): return self.get_addresses_by_first_letters(key) if isinstance(key, slice): start, stop, step = key.start, key.stop, key.step letters = (string.ascii_uppercase[string.ascii_uppercase.index(start):string.ascii_uppercase.index(stop)+1:step]) return self.get_addresses_by_first_letters(letters) address_book = AddressBook() address_book.add_address("Sherlock Holmes", "221B Baker St., London") address_book.add_address("Wallace and Gromit", "62 West Wallaby Street, Wigan, Lancashire") address_book.add_address("Peter Wimsey", "110a Piccadilly, London") address_book.add_address("Al Bundy", "9764 Jeopardy Lane, Chicago, Illinois") address_book.add_address("John Dolittle", "Oxenthorpe Road, Puddleby-on-the-Marsh, Slopshire, England") address_book.add_address("Spongebob Squarepants", "124 Conch Street, Bikini Bottom, Pacific Ocean") address_book.add_address("Hercule Poirot", "Apt. 56B, Whitehaven Mansions, Sandhurst Square, London W1") address_book.add_address("Bart Simpson", "742 Evergreen Terrace, Springfield, USA") print(string.ascii_uppercase) print(string.ascii_uppercase.index("A")) print(string.ascii_uppercase.index("Z")) print(address_book["A"]) print(address_book["B"]) print(address_book["S"]) print(address_book["A":"H"])0 yang sesuai

Metode import string class AddressBook: def __init__(self): self.addresses = [] def add_address(self, name, address): self.addresses.append((name, address)) def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)] def __getitem__(self, key): if isinstance(key, str): return self.get_addresses_by_first_letters(key) if isinstance(key, slice): start, stop, step = key.start, key.stop, key.step letters = (string.ascii_uppercase[string.ascii_uppercase.index(start):string.ascii_uppercase.index(stop)+1:step]) return self.get_addresses_by_first_letters(letters) address_book = AddressBook() address_book.add_address("Sherlock Holmes", "221B Baker St., London") address_book.add_address("Wallace and Gromit", "62 West Wallaby Street, Wigan, Lancashire") address_book.add_address("Peter Wimsey", "110a Piccadilly, London") address_book.add_address("Al Bundy", "9764 Jeopardy Lane, Chicago, Illinois") address_book.add_address("John Dolittle", "Oxenthorpe Road, Puddleby-on-the-Marsh, Slopshire, England") address_book.add_address("Spongebob Squarepants", "124 Conch Street, Bikini Bottom, Pacific Ocean") address_book.add_address("Hercule Poirot", "Apt. 56B, Whitehaven Mansions, Sandhurst Square, London W1") address_book.add_address("Bart Simpson", "742 Evergreen Terrace, Springfield, USA") print(string.ascii_uppercase) print(string.ascii_uppercase.index("A")) print(string.ascii_uppercase.index("Z")) print(address_book["A"]) print(address_book["B"]) print(address_book["S"]) print(address_book["A":"H"])5

Untuk membuat objek import string class AddressBook: def __init__(self): self.addresses = [] def add_address(self, name, address): self.addresses.append((name, address)) def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)] def __getitem__(self, key): if isinstance(key, str): return self.get_addresses_by_first_letters(key) if isinstance(key, slice): start, stop, step = key.start, key.stop, key.step letters = (string.ascii_uppercase[string.ascii_uppercase.index(start):string.ascii_uppercase.index(stop)+1:step]) return self.get_addresses_by_first_letters(letters) address_book = AddressBook() address_book.add_address("Sherlock Holmes", "221B Baker St., London") address_book.add_address("Wallace and Gromit", "62 West Wallaby Street, Wigan, Lancashire") address_book.add_address("Peter Wimsey", "110a Piccadilly, London") address_book.add_address("Al Bundy", "9764 Jeopardy Lane, Chicago, Illinois") address_book.add_address("John Dolittle", "Oxenthorpe Road, Puddleby-on-the-Marsh, Slopshire, England") address_book.add_address("Spongebob Squarepants", "124 Conch Street, Bikini Bottom, Pacific Ocean") address_book.add_address("Hercule Poirot", "Apt. 56B, Whitehaven Mansions, Sandhurst Square, London W1") address_book.add_address("Bart Simpson", "742 Evergreen Terrace, Springfield, USA") print(string.ascii_uppercase) print(string.ascii_uppercase.index("A")) print(string.ascii_uppercase.index("Z")) print(address_book["A"]) print(address_book["B"]) print(address_book["S"]) print(address_book["A":"H"])_6 kita dapat diiris, kita perlu menimpa metode garis bawah ganda ajaib Python import string class AddressBook: def __init__(self): self.addresses = [] def add_address(self, name, address): self.addresses.append((name, address)) def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)] def __getitem__(self, key): if isinstance(key, str): return self.get_addresses_by_first_letters(key) if isinstance(key, slice): start, stop, step = key.start, key.stop, key.step letters = (string.ascii_uppercase[string.ascii_uppercase.index(start):string.ascii_uppercase.index(stop)+1:step]) return self.get_addresses_by_first_letters(letters) address_book = AddressBook() address_book.add_address("Sherlock Holmes", "221B Baker St., London") address_book.add_address("Wallace and Gromit", "62 West Wallaby Street, Wigan, Lancashire") address_book.add_address("Peter Wimsey", "110a Piccadilly, London") address_book.add_address("Al Bundy", "9764 Jeopardy Lane, Chicago, Illinois") address_book.add_address("John Dolittle", "Oxenthorpe Road, Puddleby-on-the-Marsh, Slopshire, England") address_book.add_address("Spongebob Squarepants", "124 Conch Street, Bikini Bottom, Pacific Ocean") address_book.add_address("Hercule Poirot", "Apt. 56B, Whitehaven Mansions, Sandhurst Square, London W1") address_book.add_address("Bart Simpson", "742 Evergreen Terrace, Springfield, USA") print(string.ascii_uppercase) print(string.ascii_uppercase.index("A")) print(string.ascii_uppercase.index("Z")) print(address_book["A"]) print(address_book["B"]) print(address_book["S"]) print(address_book["A":"H"])5

def __getitem__(self, key): if isinstance(key, str): return self.get_addresses_by_first_letters(key) if isinstance(key, slice): start, stop, step = key.start, key.stop, key.step letters = (string.ascii_uppercase[string.ascii_uppercase.index(start):string.ascii_uppercase.index(stop)+1:step]) return self.get_addresses_by_first_letters(letters)

Pada awalnya, kami memeriksa apakah kunci kami adalah my_list = list("Python") print(my_list[0:-1])0. Ini akan terjadi jika kita mengakses objek kita dengan satu huruf dalam tanda kurung siku seperti itu. import string class AddressBook: def __init__(self): self.addresses = [] def add_address(self, name, address): self.addresses.append((name, address)) def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)] def __getitem__(self, key): if isinstance(key, str): return self.get_addresses_by_first_letters(key) if isinstance(key, slice): start, stop, step = key.start, key.stop, key.step letters = (string.ascii_uppercase[string.ascii_uppercase.index(start):string.ascii_uppercase.index(stop)+1:step]) return self.get_addresses_by_first_letters(letters) address_book = AddressBook() address_book.add_address("Sherlock Holmes", "221B Baker St., London") address_book.add_address("Wallace and Gromit", "62 West Wallaby Street, Wigan, Lancashire") address_book.add_address("Peter Wimsey", "110a Piccadilly, London") address_book.add_address("Al Bundy", "9764 Jeopardy Lane, Chicago, Illinois") address_book.add_address("John Dolittle", "Oxenthorpe Road, Puddleby-on-the-Marsh, Slopshire, England") address_book.add_address("Spongebob Squarepants", "124 Conch Street, Bikini Bottom, Pacific Ocean") address_book.add_address("Hercule Poirot", "Apt. 56B, Whitehaven Mansions, Sandhurst Square, London W1") address_book.add_address("Bart Simpson", "742 Evergreen Terrace, Springfield, USA") print(string.ascii_uppercase) print(string.ascii_uppercase.index("A")) print(string.ascii_uppercase.index("Z")) print(address_book["A"]) print(address_book["B"]) print(address_book["S"]) print(address_book["A":"H"])_9. Kami hanya dapat mengembalikan alamat yang namanya dimulai dengan huruf yang diberikan untuk kasus sepele ini

Bagian yang menarik adalah ketika def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)]_0 adalah objek my_list = list("Python") print(my_list[0:-1])8. Misalnya, akses seperti def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)]2 akan cocok dengan kondisi tersebut. Pertama, kami mengidentifikasi semua huruf menurut abjad antara def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)]3 dan def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)]4. Modul def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)]_5 di Python mencantumkan semua huruf (latin) di dalam def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)]6. Kami menggunakan my_list = list("Python") print(my_list[0:-1])_8 untuk mengekstrak huruf di antara huruf-huruf yang diberikan. Perhatikan def get_addresses_by_first_letters(self, letters): letters = letters.upper() return [(name, address) for name, address in self.addresses if any(name.upper().startswith(letter) for letter in letters)]_8 di parameter irisan kedua. Dengan cara ini, kami memastikan bahwa huruf terakhir bersifat inklusif, bukan eksklusif

Setelah kami menentukan semua huruf dalam urutan kami, kami menggunakan sequence = list("Python") start = 0 stop = 6 step = 2 i = start while i != stop: print(sequence[i]) i = i+step9, yang sudah kami diskusikan. Ini memberi kita hasil yang kita inginkan

Apa itu pemotongan 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. A slice object is used to 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.

Bagaimana konsep pemotongan?

Definisi mengiris. tindakan memotong menjadi irisan . jenis. potong, potong. tindakan memotong sesuatu menjadi beberapa bagian.

Apa itu mengiris dengan contoh?

Fungsi pertama mengambil satu argumen sedangkan fungsi kedua mengambil tiga argumen dan mengembalikan objek slice. objek slice ini dapat digunakan untuk mendapatkan subbagian dari koleksi . Misalnya, jika kita ingin mendapatkan dua elemen pertama dari sepuluh elemen? .

Apa itu slicing dan dicing dengan Python?

Memilih nilai tunggal dari daftar hanyalah salah satu bagian dari cerita. Dimungkinkan juga untuk mengiris daftar Anda, yang berarti memilih beberapa elemen dari daftar Anda . Gunakan sintaks berikut. my_list[mulai. akhir] Indeks awal akan disertakan, sedangkan indeks akhir tidak.

Postingan terbaru

LIHAT SEMUA