Apa itu pengindeksan terbalik dengan python?

Apakah Anda menyelam lebih dalam ke daftar Python dan ingin belajar tentang berbagai cara untuk membalikkannya? . Di sini, Anda akan belajar tentang beberapa alat dan teknik Python yang berguna untuk membalik daftar atau memanipulasinya dalam urutan terbalik. Pengetahuan ini akan melengkapi dan meningkatkan keterampilan terkait daftar Anda dan membuat Anda lebih mahir dengannya

Dalam tutorial ini, Anda akan mempelajari caranya

  • Balikkan daftar yang ada menggunakan
    >>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> for i in range(len(digits)):
    ..     last_item = digits.pop()
    ..     digits.insert(i, last_item)
    ...
    
    >>> digits
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    
    0 dan teknik lainnya
  • Buat salinan terbalik dari daftar yang ada menggunakan
    >>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> for i in range(len(digits)):
    ..     last_item = digits.pop()
    ..     digits.insert(i, last_item)
    ...
    
    >>> digits
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    
    1 dan mengiris
  • Gunakan iterasi, pemahaman, dan rekursi untuk membuat daftar terbalik
  • Ulangi daftar Anda dalam urutan terbalik
  • Urutkan daftar Anda dalam urutan terbalik menggunakan
    >>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> for i in range(len(digits)):
    ..     last_item = digits.pop()
    ..     digits.insert(i, last_item)
    ...
    
    >>> digits
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    
    2 dan
    >>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> for i in range(len(digits)):
    ..     last_item = digits.pop()
    ..     digits.insert(i, last_item)
    ...
    
    >>> digits
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    
    3

Untuk mendapatkan hasil maksimal dari tutorial ini, akan sangat membantu untuk mengetahui dasar-dasar ,

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
4 loop, daftar, pemahaman daftar, , dan rekursi

Bonus Gratis. Klik di sini untuk mendapatkan Cheat Sheet Python dan mempelajari dasar-dasar Python 3, seperti bekerja dengan tipe data, kamus, daftar, dan fungsi Python

Membalikkan Daftar Python

Terkadang Anda perlu memproses daftar Python mulai dari elemen terakhir hingga elemen pertama—dengan kata lain, dalam urutan terbalik. Secara umum, ada dua tantangan utama terkait bekerja dengan daftar secara terbalik

  1. Membalik daftar di tempat
  2. Membuat salinan terbalik dari daftar yang ada

Untuk memenuhi tantangan pertama, Anda dapat menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
0 atau loop yang menukar item berdasarkan indeks. Untuk yang kedua, Anda dapat menggunakan atau a. Di bagian selanjutnya, Anda akan mempelajari berbagai cara untuk mencapai keduanya dalam kode Anda

Hilangkan iklan

Membalikkan Daftar di Tempat

Seperti tipe lainnya, daftar Python mengimplementasikan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
0. Metode ini membalikkan daftar yang mendasari untuk efisiensi memori saat Anda membalikkan objek daftar besar. Inilah cara Anda dapat menggunakan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
0

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> digits.reverse()
>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_

Saat Anda memanggil

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
0 pada daftar yang sudah ada, metode membalikkannya pada tempatnya. Dengan cara ini, saat Anda mengakses daftar lagi, Anda mendapatkannya dalam urutan terbalik. Perhatikan bahwa
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
0 tidak mengembalikan daftar baru tetapi
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_

Mencoba menetapkan nilai pengembalian

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
0 ke variabel adalah kesalahan umum yang terkait dengan penggunaan metode ini. Maksud mengembalikan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1 adalah untuk mengingatkan penggunanya bahwa
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
0 beroperasi dengan efek samping, mengubah daftar yang mendasarinya

Catatan. Sebagian besar contoh dalam tutorial ini menggunakan daftar angka sebagai masukan. Namun, alat dan teknik yang sama berlaku untuk semua jenis objek Python, seperti daftar string

Oke. Itu cepat dan mudah. Sekarang, bagaimana Anda bisa membalikkan daftar dengan tangan?

Python menyediakan indeks positif berbasis nol untuk menjalankan urutan dari kiri ke kanan. Ini juga memungkinkan Anda menavigasi urutan dari kanan ke kiri menggunakan indeks negatif

Apa itu pengindeksan terbalik dengan python?

Diagram ini menunjukkan bahwa Anda dapat mengakses elemen pertama dari daftar (atau urutan) menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
5 atau
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
6 dengan operator pengindeksan, seperti di
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
7 dan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
8, masing-masing. Anda dapat menggunakan fitur Python ini untuk membalikkan urutan yang mendasarinya

Misalnya, untuk membalikkan daftar yang direpresentasikan dalam diagram, Anda dapat mengulang paruh pertama daftar dan menukar elemen pada indeks

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
5 dengan cerminnya pada indeks
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
0 di iterasi pertama. Kemudian Anda dapat mengganti elemen pada indeks
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
1 dengan cerminnya pada indeks
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
2 dan seterusnya sampai Anda mendapatkan daftar terbalik

Inilah representasi dari keseluruhan proses

Apa itu pengindeksan terbalik dengan python?

Untuk menerjemahkan proses ini ke dalam kode, Anda dapat menggunakan loop

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
4 dengan objek
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
4 pada paruh pertama daftar, yang dapat Anda peroleh dengan
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
5. Kemudian Anda dapat menggunakan pernyataan penugasan paralel untuk menukar elemen, seperti ini

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_

Perulangan ini berulang melalui objek

>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
_4 yang beralih dari
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
5 ke
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
5. Setiap iterasi menukar item dari paruh pertama daftar dengan pasangan cerminnya di paruh kedua. Ekspresi
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
_9 di dalam operator pengindeksan,
>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
0, menjamin akses ke item cermin. Anda juga dapat menggunakan ekspresi
>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
1 untuk memberikan indeks cermin yang sesuai

Selain algoritme di atas, yang memanfaatkan substitusi indeks, ada beberapa cara berbeda untuk membalikkan daftar secara manual. Misalnya, Anda dapat menggunakan

>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
_2 dan
>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
3 seperti ini

>>> ________0______

Dalam pengulangan, Anda memanggil

>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
_2 pada daftar asli tanpa argumen. Panggilan ini menghapus dan mengembalikan item terakhir dalam daftar, sehingga Anda dapat menyimpannya di
>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
5. Kemudian
>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
_3 memindahkan
>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
5 ke posisi di indeks
>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
8

Misalnya, iterasi pertama menghapus

>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
_9 dari ujung kanan daftar dan menyimpannya di
>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
5. Kemudian menyisipkan
>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
_9 di indeks
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
5. Iterasi berikutnya mengambil
>>> list(reversed(range(10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> list(reversed("Python"))
['n', 'o', 'h', 't', 'y', 'P']
3 dan memindahkannya ke indeks
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
1, dan seterusnya. Di akhir putaran, Anda mendapatkan daftar terbalik di tempatnya

Hilangkan iklan

Membuat Daftar Terbalik

Jika Anda ingin membuat salinan terbalik dari daftar yang ada dengan Python, Anda dapat menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1. Dengan daftar sebagai argumen,
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_1 mengembalikan iterator yang menghasilkan item dalam urutan terbalik

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_

Dalam contoh ini, Anda memanggil

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_1 dengan
>>> list(reversed(range(10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> list(reversed("Python"))
['n', 'o', 'h', 't', 'y', 'P']
8 sebagai argumen. Kemudian Anda menyimpan iterator yang dihasilkan di ________46______9. Panggilan ke
>>> digits = iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'list_iterator' object is not reversible
0 menggunakan iterator dan mengembalikan daftar baru yang berisi item yang sama dengan
>>> list(reversed(range(10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> list(reversed("Python"))
['n', 'o', 'h', 't', 'y', 'P']
8 tetapi dalam urutan terbalik

Hal penting yang perlu diperhatikan saat Anda menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1 adalah bahwa ini tidak membuat salinan dari daftar input, jadi perubahannya memengaruhi iterator yang dihasilkan

>>>

>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
_

Dalam contoh ini, Anda memanggil

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_1 untuk mendapatkan iterator yang sesuai atas item di
>>> digits = iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'list_iterator' object is not reversible
4. Kemudian Anda memodifikasi buah terakhir. Perubahan ini memengaruhi iterator. Anda dapat mengonfirmasinya dengan menelepon untuk mendapatkan item pertama di
>>> digits = iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'list_iterator' object is not reversible
6

Jika Anda perlu mendapatkan salinan

>>> digits = iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'list_iterator' object is not reversible
4 menggunakan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1, Anda dapat menghubungi
>>> digits = iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'list_iterator' object is not reversible
0

>>>

>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
_

Seperti yang sudah Anda ketahui, panggilan ke

>>> digits = iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'list_iterator' object is not reversible
_0 menggunakan iterator yang dihasilkan dari panggilan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1. Dengan cara ini, Anda membuat daftar baru sebagai salinan terbalik dari yang asli

menambahkan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_1, alat universal untuk memfasilitasi iterasi terbalik atas urutan, sebagaimana dinyatakan dalam PEP 322. Secara umum,
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_1 dapat mengambil objek apa pun yang mengimplementasikan suatu metode atau yang mendukung protokol urutan, yang terdiri dari metode dan metode khusus. Jadi,
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1 tidak terbatas pada daftar

>>>

>>> list(reversed(range(10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> list(reversed("Python"))
['n', 'o', 'h', 't', 'y', 'P']
_

Di sini, alih-alih daftar, Anda meneruskan objek

>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
4 dan string sebagai argumen ke
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1. Fungsi melakukan tugasnya seperti yang diharapkan, dan Anda mendapatkan versi terbalik dari input data

Poin penting lainnya untuk disoroti adalah Anda tidak dapat menggunakan iterator sewenang-wenang

>>>

>>> digits = iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'list_iterator' object is not reversible
_

Dalam contoh ini, buat iterator di atas daftar angka Anda. Saat Anda menelepon

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1 di
>>> list(reversed(range(10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> list(reversed("Python"))
['n', 'o', 'h', 't', 'y', 'P']
8, Anda mendapatkan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
04

Iterator menerapkan metode khusus untuk menelusuri data yang mendasarinya. Mereka juga diharapkan menerapkan metode khusus untuk mengembalikan instance iterator saat ini. Namun, mereka tidak diharapkan untuk menerapkan

>>> digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'set' object is not reversible
4 atau protokol urutan. Jadi,
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1 tidak bekerja untuk mereka. Jika Anda perlu membalikkan iterator seperti ini, Anda harus terlebih dahulu mengonversinya menjadi daftar menggunakan
>>> digits = iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'list_iterator' object is not reversible
0

Hal lain yang perlu diperhatikan adalah bahwa Anda tidak dapat menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1 dengan iterables yang tidak dapat diurutkan

>>>

>>> digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'set' object is not reversible
_

Dalam contoh ini, saat Anda mencoba menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1 dengan objek
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
12, Anda mendapatkan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
04. Ini karena set tidak mengatur itemnya, jadi Python tidak tahu cara membalikkannya

Hilangkan iklan

Membalikkan Daftar Melalui Mengiris

Sejak Python 1. 4, sintaks pemotongan memiliki argumen ketiga, disebut

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
14. Namun, sintaks tersebut awalnya tidak berfungsi pada tipe bawaan, seperti daftar, tupel, dan string. memperluas sintaks ke tipe bawaan, sehingga Anda dapat menggunakan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
14 dengannya sekarang. Inilah sintaks pemotongan lengkap

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
0

Sintaks ini memungkinkan Anda untuk mengekstrak semua item di

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
16 dari
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
17 ke
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
18 oleh ________12______14. Offset ketiga,
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_14, default ke
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
1, itulah sebabnya operasi pemotongan normal mengekstrak item dari kiri ke kanan

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
1

Dengan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_22, Anda mendapatkan item dari indeks
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
1 ke indeks
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
24. Item dengan indeks sama dengan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_25 tidak pernah disertakan dalam hasil akhir. Pengirisan ini mengembalikan semua item dalam rentang target karena
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
14 default ke
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
1

Catatan. Anda dapat menghilangkan titik dua kedua (

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_28) di operator pemotongan ketika nilai default (
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
1) memenuhi kebutuhan Anda saat ini

Jika Anda menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
14 yang berbeda, maka irisan melompati item sebanyak nilai
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
14

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
2

Pada contoh pertama,

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_32 mengekstrak semua item dari indeks
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
5 hingga akhir
>>> list(reversed(range(10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> list(reversed("Python"))
['n', 'o', 'h', 't', 'y', 'P']
8, melompati dua item setiap kali. Dalam contoh kedua, pemotongan melompati
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
35 item seiring berjalannya waktu. Jika Anda tidak memberikan nilai ke
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_17 dan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
25, maka nilai tersebut disetel ke
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
5 dan ke panjang urutan target, masing-masing

Jika Anda menetapkan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_14 ke
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
0, maka Anda mendapatkan potongan dengan item dalam urutan terbalik

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
3

Pemotongan ini mengembalikan semua item dari ujung kanan daftar (

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
41) kembali ke ujung kiri karena Anda menghilangkan offset kedua. Keajaiban lainnya dalam contoh ini berasal dari penggunaan nilai
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
0 untuk
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
14. Saat Anda menjalankan trik ini, Anda mendapatkan salinan daftar asli dalam urutan terbalik tanpa memengaruhi data input

Jika Anda sepenuhnya mengandalkan offset implisit, maka sintaks pemotongan menjadi lebih pendek, lebih bersih, dan lebih sedikit rawan kesalahan

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
4

Di sini, Anda meminta Python untuk memberi Anda daftar lengkap (

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
44) tetapi memeriksa semua item dari belakang ke depan dengan mengatur
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
14 hingga
>>> fruits = ["apple", "banana", "orange"]

>>> reversed_fruit = reversed(fruits)  # Get the iterator
>>> fruits[-1] = "kiwi"  # Modify the last item
>>> next(reversed_fruit)  # The iterator sees the change
'kiwi'
0. Ini cukup rapi, tetapi
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_1 lebih efisien dalam hal waktu eksekusi dan penggunaan memori. Ini juga lebih mudah dibaca dan eksplisit. Jadi ini adalah poin yang perlu dipertimbangkan dalam kode Anda

Teknik lain untuk membuat salinan terbalik dari daftar yang ada adalah dengan menggunakan. Tanda tangan dari fungsi bawaan ini adalah seperti ini

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
5

Fungsi ini bekerja mirip dengan operator pengindeksan. Dibutuhkan tiga argumen dengan arti yang mirip dengan yang digunakan dalam operator pemotongan dan mengembalikan objek yang mewakili kumpulan indeks yang dikembalikan oleh

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
49. Kedengarannya rumit, jadi inilah beberapa contoh cara kerja
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
48

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
6

Panggilan pertama ke

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_48 setara dengan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
52. Panggilan kedua berfungsi sama dengan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
53. Anda juga dapat meniru pemotongan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
44 menggunakan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
55. Dalam hal ini, meneruskan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_1 ke
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
17 dan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
25 berarti Anda menginginkan irisan dari awal hingga akhir urutan target

Catatan. Di bawah tenda, mengiris literal membuat

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
59 objek. Jadi, saat Anda menghilangkan offset seperti di
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
44, ini berfungsi seolah-olah Anda meneruskan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1 ke offset yang sesuai dalam panggilan ke
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
48

Inilah cara Anda dapat menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_48 untuk membuat salinan terbalik dari daftar yang ada

>>> ________12______7

Objek

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_59 mengekstrak semua item dari
>>> list(reversed(range(10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> list(reversed("Python"))
['n', 'o', 'h', 't', 'y', 'P']
8, mulai dari ujung kanan kembali ke ujung kiri, dan mengembalikan salinan terbalik dari daftar target

Hilangkan iklan

Menghasilkan Daftar Terbalik dengan Tangan

Sejauh ini, Anda telah melihat beberapa alat dan teknik untuk membalikkan daftar atau membuat salinan terbalik dari daftar yang ada. Sebagian besar waktu, alat dan teknik ini adalah cara yang tepat untuk membalikkan daftar dengan Python. Namun, jika Anda perlu membalikkan daftar dengan tangan, maka akan bermanfaat bagi Anda untuk memahami logika di balik proses tersebut

Di bagian ini, Anda akan mempelajari cara membalik daftar Python menggunakan loop, rekursi, dan pemahaman. Idenya adalah untuk mendapatkan daftar dan membuat salinannya dalam urutan terbalik

Menggunakan Lingkaran

Teknik pertama yang akan Anda gunakan untuk membalikkan daftar melibatkan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
4 loop dan rangkaian daftar menggunakan simbol plus (
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
67)

>>> ________12______8

Setiap iterasi dari

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
4 loop mengambil item berikutnya dari
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
16 dan membuat daftar baru yang dihasilkan dari penggabungan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
70 dan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
71, yang awalnya berisi daftar kosong. Daftar yang baru dibuat dipindahkan ke ________12______71. Fungsi ini tidak mengubah
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
16

Catatan. Contoh di atas menggunakan teknik boros karena membuat beberapa daftar hanya untuk membuangnya di iterasi berikutnya

Anda juga dapat memanfaatkan

>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
_3 untuk membuat daftar terbalik dengan bantuan loop

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
9

Panggilan ke

>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
3 di dalam loop menyisipkan item berikutnya pada indeks
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
5 dari
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
71. Di akhir putaran, Anda mendapatkan daftar baru dengan item ________12______16 dalam urutan terbalik

Menggunakan

>>> fruits = ["apple", "banana", "orange"]

>>> list(reversed(fruits))
['orange', 'banana', 'apple']
_3 seperti pada contoh di atas memiliki kekurangan yang signifikan. Masukkan operasi di ujung kiri daftar Python diketahui tidak efisien mengenai waktu eksekusi. Itu karena Python perlu memindahkan semua item satu langkah ke belakang untuk memasukkan item baru di posisi pertama

Menggunakan Rekursi

Anda juga dapat menggunakan rekursi untuk membalik daftar Anda. Rekursi adalah saat Anda menentukan fungsi yang memanggil dirinya sendiri. Ini menciptakan loop yang bisa menjadi tidak terbatas jika Anda tidak memberikan kasus dasar yang menghasilkan hasil tanpa memanggil kembali fungsi tersebut

Anda memerlukan kasing dasar untuk mengakhiri loop rekursif. Ketika datang ke daftar pembalik, kasing dasar akan tercapai ketika panggilan rekursif sampai ke akhir daftar input. Anda juga perlu mendefinisikan kasus rekursif, yang mereduksi semua kasus berturut-turut menuju kasus dasar dan, oleh karena itu, ke akhir perulangan

Inilah cara Anda dapat menentukan fungsi rekursif untuk mengembalikan salinan terbalik dari daftar yang diberikan

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
0

Di dalam

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_80, pertama-tama Anda memeriksa kasus dasar, di mana daftar input kosong dan mengembalikan fungsi. Klausa
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_81 memberikan kasus rekursif, yang merupakan panggilan ke
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
80 itu sendiri tetapi dengan potongan dari daftar asli,
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
83. Irisan ini berisi semua item di
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_16 kecuali item pertama, yang kemudian ditambahkan sebagai daftar item tunggal (
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
85) ke hasil panggilan rekursif

Catatan. Dalam kasus rekursif, Anda dapat mengganti

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
85 dengan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
87 untuk mendapatkan hasil yang serupa

Panggilan yang dikomentari ke

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_88 di awal klausa
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
81 hanyalah tipuan yang dimaksudkan untuk menunjukkan bagaimana panggilan berikutnya mengurangi daftar input ke kasus dasar. Lanjutkan dan batalkan komentar pada baris untuk melihat apa yang terjadi

Hilangkan iklan

Menggunakan Pemahaman Daftar

Jika Anda bekerja dengan daftar dengan Python, Anda mungkin ingin mempertimbangkan untuk menggunakan pemahaman daftar. Alat ini cukup populer di ruang Python karena mewakili cara Pythonic untuk memproses daftar

Berikut adalah contoh cara menggunakan pemahaman daftar untuk membuat daftar terbalik

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1

Keajaiban dalam pemahaman daftar ini berasal dari panggilan ke

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
90. Dalam hal ini,
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_90 mengembalikan indeks dari
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
41 kembali ke
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = reversed(digits)
>>> reversed_digits


>>> list(reversed_digits)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
5. Hal ini membuat loop pemahaman mengulang item di
>>> list(reversed(range(10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> list(reversed("Python"))
['n', 'o', 'h', 't', 'y', 'P']
8 secara terbalik, membuat daftar terbalik baru dalam proses

Iterasi Melalui Daftar secara Terbalik

Hingga saat ini, Anda telah mempelajari cara membuat daftar terbalik dan juga cara membalikkan daftar yang sudah ada, baik dengan menggunakan alat yang dirancang khusus untuk menyelesaikan tugas itu atau dengan menggunakan solusi kode tangan Anda sendiri

Dalam pemrograman sehari-hari, Anda mungkin menemukan bahwa mengulangi daftar dan urutan yang ada dalam urutan terbalik, biasanya dikenal sebagai iterasi terbalik, adalah persyaratan yang cukup umum. Jika itu kasus Anda, maka Anda memiliki beberapa opsi. Tergantung pada kebutuhan spesifik Anda, Anda dapat menggunakan

  • Fungsi bawaan
    >>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> for i in range(len(digits)):
    ..     last_item = digits.pop()
    ..     digits.insert(i, last_item)
    ...
    
    >>> digits
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    
    1
  • Operator pengiris,
    >>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> reversed_digits = digits.reverse()
    >>> reversed_digits is None
    True
    
    96
  • Metode khusus
    >>> digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
    
    >>> reversed(digits)
    Traceback (most recent call last):
      File "", line 1, in 
    TypeError: 'set' object is not reversible
    
    _4

Di beberapa bagian berikut, Anda akan mempelajari tentang semua opsi ini dan bagaimana opsi tersebut dapat membantu Anda mengulang daftar dalam urutan terbalik

Fungsi >>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> for i in range(len(digits)): .. last_item = digits.pop() .. digits.insert(i, last_item) ... >>> digits [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 1 Bawaan

Pendekatan pertama Anda untuk mengulangi daftar dalam urutan terbalik mungkin menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1. Fungsi bawaan ini dirancang khusus untuk mendukung iterasi terbalik. Dengan daftar sebagai argumen, ia mengembalikan iterator yang menghasilkan item daftar masukan dalam urutan terbalik

Inilah cara Anda dapat menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_1 untuk mengulangi item dalam daftar dalam urutan terbalik

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
2

Hal pertama yang perlu diperhatikan dalam contoh ini adalah bahwa loop

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
4 sangat mudah dibaca. Nama
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_1 dengan jelas mengungkapkan maksudnya, dengan detail komunikasi yang halus bahwa fungsi tersebut tidak menghasilkan efek samping apa pun. Dengan kata lain, itu tidak mengubah daftar masukan

Loop juga efisien dalam hal penggunaan memori karena

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1 mengembalikan iterator yang menghasilkan item sesuai permintaan tanpa menyimpan semuanya dalam memori pada saat yang sama. Sekali lagi, detail halus yang perlu diperhatikan adalah jika daftar input berubah selama iterasi, maka iterator akan melihat perubahannya

Operator Pemotong, >>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> reversed_digits = digits.reverse() >>> reversed_digits is None True _44

Pendekatan kedua untuk membalikkan iterasi adalah dengan menggunakan sintaks extended slicing yang Anda lihat sebelumnya. Sintaks ini tidak mendukung efisiensi memori, keindahan, atau kejelasan. Tetap saja, ini menyediakan cara cepat untuk mengulang salinan terbalik dari daftar yang ada tanpa risiko terpengaruh oleh perubahan dalam daftar asli

Inilah cara Anda dapat menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
_44 untuk beralih melalui salinan daftar yang ada dalam urutan terbalik

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
3

Saat Anda mengiris daftar seperti dalam contoh ini, Anda membuat salinan terbalik dari daftar asli. Awalnya, kedua daftar berisi referensi ke grup item yang sama. Namun, jika Anda menetapkan nilai baru ke item tertentu dalam daftar asli, seperti di

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
06, referensi berubah untuk menunjuk ke nilai baru. Dengan cara ini, perubahan pada daftar input tidak memengaruhi salinan

Catatan. Dibandingkan dengan extended slicing,

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_1 jauh lebih mudah dibaca, berjalan lebih cepat, dan menggunakan lebih sedikit memori. Namun, itu dipengaruhi oleh perubahan dalam daftar input

Anda dapat memanfaatkan pemotongan semacam ini untuk memodifikasi daftar asli dengan aman saat Anda mengulangi item lamanya dalam urutan terbalik. Misalnya, Anda perlu mengulangi daftar angka dalam urutan terbalik dan mengganti setiap angka dengan nilai kuadratnya. Dalam hal ini, Anda dapat melakukan sesuatu seperti ini

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
4

Di sini, loop berulang melalui salinan terbalik dari

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
08. Panggilan ke
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
09 memberikan indeks berbasis nol naik untuk setiap item dalam salinan terbalik. Itu memungkinkan Anda untuk memodifikasi
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_08 selama iterasi. Kemudian loop memodifikasi
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_08 dengan mengganti setiap item dengan nilai kuadratnya. Akibatnya,
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_08 akhirnya berisi nilai kuadrat dalam urutan terbalik

Hilangkan iklan

Metode Khusus >>> digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} >>> reversed(digits) Traceback (most recent call last): File "", line 1, in TypeError: 'set' object is not reversible _4

Daftar Python menerapkan metode khusus yang disebut

>>> digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'set' object is not reversible
4 yang memungkinkan iterasi terbalik. Metode ini memberikan logika di balik
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1. Dengan kata lain, panggilan ke
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_1 dengan daftar sebagai argumen memicu panggilan implisit ke
>>> digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'set' object is not reversible
4 pada daftar masukan

Metode khusus ini mengembalikan iterator pada item daftar saat ini dalam urutan terbalik. Namun,

>>> digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'set' object is not reversible
4 tidak dimaksudkan untuk digunakan secara langsung. Sebagian besar waktu, Anda akan menggunakannya untuk melengkapi kelas Anda sendiri dengan kemampuan iterasi terbalik

Misalnya, Anda ingin mengulangi rentang angka titik-mengambang. Anda tidak dapat menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
90, jadi Anda memutuskan untuk membuat kelas Anda sendiri untuk mendekati kasus penggunaan khusus ini. Anda berakhir dengan kelas seperti ini

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_5

Kelas ini tidak sempurna. Ini hanya versi pertama Anda. Namun, ini memungkinkan Anda untuk beralih melalui interval angka titik-mengambang menggunakan nilai kenaikan tetap,

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
14. Di kelas Anda, berikan dukungan untuk iterasi normal dan
>>> digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'set' object is not reversible
4 mendukung iterasi terbalik

Untuk menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_23, Anda dapat melakukan hal seperti ini

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
6

Kelas mendukung iterasi normal, yang, sebagaimana disebutkan, disediakan oleh

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
06. Sekarang Anda dapat mencoba mengulang dalam urutan terbalik menggunakan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
7

Dalam contoh ini,

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1 bergantung pada implementasi
>>> digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

>>> reversed(digits)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'set' object is not reversible
4 Anda untuk menyediakan fungsionalitas iterasi terbalik. Dengan cara ini, Anda memiliki iterator floating-point yang berfungsi

Membalikkan Daftar Python. Ringkasan

Hingga saat ini, Anda telah belajar banyak tentang membalik daftar menggunakan berbagai alat dan teknik. Berikut adalah tabel yang merangkum poin-poin penting yang telah Anda bahas

Fitur

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
0
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
1
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> reversed_digits = digits.reverse()
>>> reversed_digits is None
True
44LoopList CompRecursionMemodifikasi daftar di tempat✔❌❌✔/❌❌❌Membuat salinan daftar❌❌✔✔/❌✔✔Cepat✔✔✔❌❌✔❌Bersifat universal❌✔✔✔✔✔

Melihat sekilas ringkasan ini akan memungkinkan Anda memutuskan alat atau teknik mana yang akan digunakan saat Anda membalikkan daftar, membuat salinan terbalik dari daftar yang ada, atau mengulangi daftar Anda dalam urutan terbalik

Menyortir Daftar Python dalam Urutan Terbalik

Opsi lain yang menarik untuk membalikkan daftar dengan Python adalah menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
2 dan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
3 untuk mengurutkannya dalam urutan terbalik. Untuk melakukannya, Anda dapat meneruskan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_33 ke argumen ________27______34 masing-masing

Catatan. Untuk mempelajari lebih dalam tentang cara menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_2 dan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
3, lihat Cara Menggunakan sort() dan sort() dengan Python

Tujuan dari

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_2 adalah untuk mengurutkan item dari daftar. Penyortiran dilakukan di tempat, sehingga tidak membuat daftar baru. Jika Anda menyetel argumen kata kunci
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_34 ke
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
33, maka Anda mendapatkan daftar yang diurutkan dalam urutan menurun atau terbalik

>>> ________27______8

Sekarang daftar Anda sepenuhnya diurutkan dan juga dalam urutan terbalik. Ini cukup nyaman saat Anda bekerja dengan beberapa data dan Anda perlu mengurutkannya dan membalikkannya pada saat yang bersamaan

Di sisi lain, jika Anda ingin mengulangi daftar yang diurutkan dalam urutan terbalik, maka Anda dapat menggunakan

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
3. Fungsi bawaan ini mengembalikan daftar baru yang berisi semua item input yang dapat diubah secara berurutan. Jika Anda meneruskan
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
33 ke
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
34 argumen kata kuncinya, Anda akan mendapatkan salinan terbalik dari daftar awal

>>>

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
9

Argumen

>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits) // 2):
..     digits[i], digits[-1 - i] = digits[-1 - i], digits[i]
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
_34 ke
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
3 memungkinkan Anda mengurutkan iterables dalam urutan menurun, bukan dalam urutan menaik. Jadi, jika Anda perlu membuat daftar terurut dalam urutan terbalik, maka
>>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> for i in range(len(digits)):
..     last_item = digits.pop()
..     digits.insert(i, last_item)
...

>>> digits
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
3 cocok untuk Anda

Hilangkan iklan

Kesimpulan

Membalikkan dan bekerja dengan daftar dalam urutan terbalik mungkin merupakan tugas yang cukup umum dalam pekerjaan Anda sehari-hari sebagai pembuat kode Python. Dalam tutorial ini, Anda memanfaatkan beberapa alat dan teknik Python untuk membalik daftar Anda dan mengelolanya dalam urutan terbalik

Dalam tutorial ini, Anda belajar caranya

  • Balikkan daftar Anda menggunakan
    >>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> for i in range(len(digits)):
    ..     last_item = digits.pop()
    ..     digits.insert(i, last_item)
    ...
    
    >>> digits
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    
    0 dan teknik lainnya
  • Gunakan
    >>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> for i in range(len(digits)):
    ..     last_item = digits.pop()
    ..     digits.insert(i, last_item)
    ...
    
    >>> digits
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    
    _1 dan mengiris untuk membuat salinan terbalik dari daftar Anda
  • Gunakan iterasi, pemahaman, dan rekursi untuk membuat daftar terbalik
  • Ulangi daftar Anda dalam urutan terbalik
  • Urutkan daftar dalam urutan terbalik menggunakan
    >>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> for i in range(len(digits)):
    ..     last_item = digits.pop()
    ..     digits.insert(i, last_item)
    ...
    
    >>> digits
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    
    2 dan
    >>> digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> for i in range(len(digits)):
    ..     last_item = digits.pop()
    ..     digits.insert(i, last_item)
    ...
    
    >>> digits
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    
    3

Semua pengetahuan ini membantu Anda meningkatkan keterampilan terkait daftar Anda. Ini memberi Anda alat yang diperlukan untuk menjadi lebih mahir saat Anda bekerja dengan daftar Python

Tandai sebagai Selesai

🐍 Trik Python 💌

Dapatkan Trik Python singkat & manis yang dikirim ke kotak masuk Anda setiap beberapa hari. Tidak pernah ada spam. Berhenti berlangganan kapan saja. Dikuratori oleh tim Real Python

Apa itu pengindeksan terbalik dengan python?

Kirimi Saya Trik Python »

Tentang Leodanis Pozo Ramos

Apa itu pengindeksan terbalik dengan python?
Apa itu pengindeksan terbalik dengan python?

Leodanis adalah seorang insinyur industri yang menyukai Python dan pengembangan perangkat lunak. Dia adalah pengembang Python otodidak dengan pengalaman lebih dari 6 tahun. Dia adalah seorang penulis teknis yang rajin dengan semakin banyak artikel yang diterbitkan di Real Python dan situs lainnya

» Lebih lanjut tentang Leodanis


Setiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah

Apa itu pengindeksan terbalik dengan python?

Aldren

Apa itu pengindeksan terbalik dengan python?

Bartosz

Apa itu pengindeksan terbalik dengan python?

Joanna

Apa itu pengindeksan terbalik dengan python?

Yakub

Master Keterampilan Python Dunia Nyata Dengan Akses Tanpa Batas ke Python Nyata

Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas pakar Pythonista

Tingkatkan Keterampilan Python Anda »

Guru Keterampilan Python Dunia Nyata
Dengan Akses Tak Terbatas ke Real Python

Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas ahli Pythonista

Tingkatkan Keterampilan Python Anda »

Bagaimana menurut anda?

Nilai artikel ini

Tweet Bagikan Bagikan Email

Apa takeaway # 1 Anda atau hal favorit yang Anda pelajari?

Kiat Berkomentar. Komentar yang paling berguna adalah yang ditulis dengan tujuan belajar dari atau membantu siswa lain. dan dapatkan jawaban atas pertanyaan umum di portal dukungan kami

Apa yang Anda maksud dengan pengindeksan terbalik?

. daftar (sebagai indeks atau glosarium) di mana item disusun menurut abjad di bawah elemen terakhirnya .

Bagaimana cara kerja pengindeksan terbalik di Python?

Untuk membalikkan string, kita cukup membuat irisan yang dimulai dengan panjang string, dan berakhir pada indeks 0 . Pernyataan irisan berarti mulai dari panjang string, berakhir pada posisi 0, bergerak dengan langkah -1 (atau mundur satu langkah).

Bagaimana Anda membalikkan pengindeksan dalam daftar Python?

Cara terbaik untuk membalikkan daftar menggunakan slicing dengan Python adalah menggunakan pengindeksan negatif . Ini memungkinkan Anda untuk melangkahi daftar menggunakan -1, dengan menggunakan daftar kode[. -1].

Apa yang dilakukan reverse () dengan Python?

Python terbalik() . computes the reverse of a given sequence object and returns it in the form of a list.