Dalam tutorial ini, Anda akan mempelajari cara menggunakan Python untuk membalikkan daftar. Ini adalah tugas umum yang ada [dan pertanyaan wawancara Python umum yang akan Anda temui]. Mengetahui bagaimana mendekati tugas ini dengan cara yang berbeda dapat membantu Anda memilih metode yang tepat dalam situasi yang berbeda
Python hadir dengan sejumlah metode dan fungsi yang memungkinkan Anda membalikkan daftar, baik secara langsung atau dengan mengulangi objek daftar. Anda akan mempelajari cara membalikkan daftar Python dengan menggunakan fungsi reversed[]
, metode
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0, pengindeksan daftar, for loop, pemahaman daftar, dan metode sliceMeskipun mempelajari enam metode berbeda untuk membalikkan daftar dengan Python mungkin tampak berlebihan, salah satu hal indah tentang Python adalah fleksibilitas yang diberikannya. Beberapa metode akan lebih cocok dengan gaya Anda, sementara yang lain mungkin lebih berkinerja atau lebih mudah dibaca
Mari kita mulai
Jawaban Cepat. Gunakan
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0 Python# Using list.reverse[] to reverse a list in Python
values = [1, 2, 3, 4, 5]
values.reverse[]
print[values]
# Returns: [5, 4, 3, 2, 1]
Daftar isi
Ringkasan. Cara Membalik Daftar dengan Python
Dalam panduan ini, kami akan membahas enam cara berbeda untuk membalikkan daftar dengan Python. Namun, mari kita bahas apa cara terbaik dan tercepat untuk membalikkan daftar dengan Python. Dari sana, Anda dapat membaca tentang berbagai metode di bagian di bawah ini
Cara paling Pythonic untuk membalikkan daftar adalah dengan menggunakan metode daftar
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0. Ini karena disengaja dan tidak meninggalkan keraguan di benak pembaca tentang apa yang ingin Anda capaiCara tercepat untuk membalikkan daftar dengan Python adalah menggunakan loop for atau pemahaman daftar. Untuk menguji ini, kami menguji setiap metode pada daftar yang berisi 100.000.000 item. Ini memungkinkan kami untuk benar-benar menguji stres masing-masing metode yang berbeda
Mari kita lihat apa hasilnya untuk masing-masing metode
MethodTime untuk membalik daftar 100.000.000 item. membalikkan[] metode32. 6 ms ± 3. 35 ms per loopterbalik[] function680 ms ± 21. 6 ms per loop Pengindeksan terbalik386 ms ± 3. 14 ms per loopUntuk loop751 ns ± 1. 83 ns per loopList pemahaman747 ns ± 1. 12 ns per objek loopSlicer382 ms ± 2. 35 ms per loopWaktu eksekusi yang berbeda untuk membalikkan daftar dengan PythonSekarang setelah kita membahasnya, mari selami cara menggunakan berbagai metode ini untuk membalikkan daftar dengan Python
Memahami Pengindeksan Daftar Python
Sebelum kita menyelami cara membalikkan daftar Python, penting bagi kita untuk memahami bagaimana daftar Python diindeks. Karena daftar Python disusun dan diindeks, kita dapat mengakses dan memodifikasi daftar Python berdasarkan indeksnya
Indeks daftar Python bekerja dalam dua cara utama
- Indeks Positif. Daftar Python akan dimulai pada posisi
3 dan berlanjut hingga indeks panjang minus 1# Reverse a Python list with reverse[] original_list = [1,2,3,4,5,6,7,8,9] original_list.reverse[] print[original_list] # Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
- Indeks Negatif. Daftar Python dapat diindeks secara terbalik, mulai dari posisi
4, pindah ke nilai negatif dari panjang daftar# Reverse a Python list with reverse[] original_list = [1,2,3,4,5,6,7,8,9] original_list.reverse[] print[original_list] # Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
Gambar di bawah menunjukkan bagaimana item daftar dapat diindeks
Di bagian selanjutnya, Anda akan mempelajari cara menggunakan metode daftar Python
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0 untuk membalikkan daftar dengan PythonBalikkan Daftar Python Menggunakan metode terbalik
Daftar Python memiliki akses ke metode,
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0, yang memungkinkan Anda membalikkan daftar di tempat. Ini berarti daftar dibalik dengan cara hemat memori, tanpa perlu membuat objek baruMari kita lihat bagaimana kita dapat membalikkan daftar Python menggunakan metode
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
Karena operasi ditangani di tempat, jika Anda perlu mempertahankan daftar asli, pertama-tama Anda harus membuat salinannya. Kita dapat membuat salinan daftar dengan menggunakan metode
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
8 pada daftar asli terlebih dahulu. Mari kita lihat cara kerjanya# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = original_list.copy[]
reversed_list.reverse[]
print['Original List: ', original_list]
print['Reversed List: ', reversed_list]
# Returns:
# Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Reversed List: [9, 8, 7, 6, 5, 4, 3, 2, 1]
Kita dapat melihat bahwa dengan terlebih dahulu menerapkan metode
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
_8 ke daftar asli, kita kemudian dapat menghubungkan metode # Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0 untuk membalikkan daftar yang disalinDi bagian selanjutnya, Anda akan mempelajari cara membalik daftar dengan menggunakan pengindeksan daftar
Membalik Daftar Python Menggunakan fungsi terbalik
Python memiliki fungsi bawaan, reversed[]
, yang mengambil objek yang dapat diubah seperti daftar dan mengembalikan versi kebalikannya
Metode reversed[]
berfungsi mirip dengan metode pengindeksan daftar yang dibahas di bawah. Itu ditambahkan ke Python untuk mereplikasi metode pengindeksan tanpa terlalu bertele-tele
Mari kita lihat bagaimana kita bisa menggunakan fungsi
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = original_list.copy[]
reversed_list.reverse[]
print['Original List: ', original_list]
print['Reversed List: ', reversed_list]
# Returns:
# Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Reversed List: [9, 8, 7, 6, 5, 4, 3, 2, 1]
3 untuk membalikkan daftar Python# Reverse a Python list with reversed[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = list[reversed[original_list]]
print[reversed_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
Fungsi reversed[]
sebenarnya mengembalikan objek iterator bertipe
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = original_list.copy[]
reversed_list.reverse[]
print['Original List: ', original_list]
print['Reversed List: ', reversed_list]
# Returns:
# Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Reversed List: [9, 8, 7, 6, 5, 4, 3, 2, 1]
5. Karena itu, kita perlu meneruskan objek ke fungsi # Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = original_list.copy[]
reversed_list.reverse[]
print['Original List: ', original_list]
print['Reversed List: ', reversed_list]
# Returns:
# Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Reversed List: [9, 8, 7, 6, 5, 4, 3, 2, 1]
6 untuk mengubahnya menjadi daftarKami dapat memverifikasi ini dengan menulis kode berikut
# Checking the Type of a reverseiterator
original_list = [1,2,3,4,5,6,7,8,9]
print[type[reversed[original_list]]]
# Returns:
Dengan meneruskan objek ke fungsi
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = original_list.copy[]
reversed_list.reverse[]
print['Original List: ', original_list]
print['Reversed List: ', reversed_list]
# Returns:
# Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Reversed List: [9, 8, 7, 6, 5, 4, 3, 2, 1]
6, semua item ditarik ke dalam daftarIntinya, objek iterator cukup hemat memori. Ini karena berperilaku seperti objek generator dan mengevaluasi dengan malas [hanya saat item diakses]. Saat kami mengubahnya menjadi daftar menggunakan fungsi
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = original_list.copy[]
reversed_list.reverse[]
print['Original List: ', original_list]
print['Reversed List: ', reversed_list]
# Returns:
# Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Reversed List: [9, 8, 7, 6, 5, 4, 3, 2, 1]
6, kami kehilangan efisiensi iniDi bagian berikut, Anda akan mempelajari cara menggunakan pengindeksan daftar untuk membalikkan daftar Python
Balikkan Daftar Python Menggunakan Pengindeksan Daftar
Saat mengindeks daftar, orang umumnya berpikir untuk mengakses semua item antara posisi awal dan akhir. Namun, Anda juga dapat menyertakan variabel
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = original_list.copy[]
reversed_list.reverse[]
print['Original List: ', original_list]
print['Reversed List: ', reversed_list]
# Returns:
# Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Reversed List: [9, 8, 7, 6, 5, 4, 3, 2, 1]
_9 yang memungkinkan Anda berpindah antar indeks pada interval yang berbeda. Pengindeksan daftar berbentuk # Reverse a Python list with reversed[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = list[reversed[original_list]]
print[reversed_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0Misalnya,
# Reverse a Python list with reversed[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = list[reversed[original_list]]
print[reversed_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
1 akan menampilkan seluruh daftar dari awal hingga akhir. Sebaliknya, jika kita melangkah menggunakan nilai # Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
4, kita akan menelusuri daftar dari item terakhir ke item pertamaMemindahkan daftar dari ujung ke awal sama dengan membaliknya. Mari kita lihat bagaimana kita bisa menggunakan pengindeksan daftar Python untuk membalikkan daftar
# Reverse a Python list with list indexing
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = original_list[::-1]
print[reversed_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
Pada kode di atas, kita membuat daftar baru dengan melangkahi daftar asli dalam urutan terbalik. Metode ini tidak mengubah objek di tempat dan perlu ditugaskan ke variabel
Balikkan Daftar Python Menggunakan For Loop
Python for loop adalah cara yang bagus untuk mengulangi suatu tindakan untuk beberapa kali yang ditentukan. Kita dapat menggunakan terbalik[] dan mengulangi itemnya untuk membuat daftar dalam urutan terbalik
Mari kita lihat bagaimana ini bisa dilakukan
# Reverse a Python list with a for loop
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = list[]
for item in original_list:
reversed_list = [item] + reversed_list
print[reversed_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
Mari kita uraikan apa yang dilakukan blok kode di atas
- Kami mendefinisikan dua daftar, daftar asli kami dan daftar kosong untuk menyimpan item terbalik kami
- Kami kemudian mengulangi setiap item dalam daftar. Kami menugaskan kembali daftar terbalik ke daftar yang berisi setiap item ditambah daftar terbalik
Di bagian selanjutnya, Anda akan belajar cara menggunakan pemahaman daftar Python untuk membalikkan daftar
Membalik Daftar Python Menggunakan Pemahaman Daftar
Mirip dengan menggunakan perulangan for untuk ini, kita juga bisa menggunakan pemahaman daftar untuk membalikkan daftar Python. Alih-alih hanya mengonversi perulangan for menjadi pemahaman daftar, kami akan menggunakan pendekatan yang sedikit berbeda untuk mencapai tujuan kami
Kami akan mengulangi setiap item dalam daftar asli kami dalam urutan negatif. Mari kita lihat seperti apa ini
# Reverse a Python list with a List Comprehension
original_list = [1,2,3,4,5,6,7,8,9]
start = len[original_list] - 1
reversed_list = [original_list[i] for i in range[start, -1, -1]]
print[reversed_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
Mari kita uraikan apa yang dilakukan kode di atas
- Kami membuat variabel
3 yang mewakili panjang daftar dikurangi satu# Reverse a Python list with reversed[] original_list = [1,2,3,4,5,6,7,8,9] reversed_list = list[reversed[original_list]] print[reversed_list] # Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
- Kami kemudian membuat pemahaman daftar yang mengakses setiap item indeks dalam daftar kami menggunakan rentang dari posisi awal hingga 0 dalam urutan terbalik
Metode ini berfungsi, tetapi ini bukan metode yang paling mudah dibaca. Ini bisa menjadi cara yang baik untuk mempelajari bagaimana melakukan ini untuk wawancara, tetapi lebih dari itu, ini bukan metode yang paling direkomendasikan.
Balikkan Daftar Python Menggunakan Metode Iris
Python juga menyediakan fungsi
# Reverse a Python list with reversed[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = list[reversed[original_list]]
print[reversed_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
_4 yang memungkinkan kita mengindeks objek dengan cara yang sama seperti cara kerja metode pengindeksan daftar di atas. Fungsi membuat objek irisan yang memungkinkan kita menggunakan kembali irisan dengan mudah di beberapa objek. Karena itu, kami dapat menerapkan pengindeksan yang sama di seluruh daftar yang berbedaMari kita lihat bagaimana kita bisa menggunakan fungsi di Python
# Reverse a Python list with slice[]
original_list = [1,2,3,4,5,6,7,8,9]
reverser = slice[None, None, -1]
reversed_list = original_list[reverser]
print[reversed_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
Manfaat dari pendekatan ini adalah kita dapat menetapkan potongan khusus yang dapat digunakan kembali dengan mudah, tanpa perlu memodifikasi banyak item. Ini memungkinkan Anda untuk dengan mudah menerapkan irisan yang sama ke beberapa item
Selain itu, fungsi
# Reverse a Python list with reversed[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = list[reversed[original_list]]
print[reversed_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
_5 memungkinkan Anda memberi nama yang mudah dipahami pada slice. Pada contoh di atas, kami menamai pemotong # Reverse a Python list with reversed[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = list[reversed[original_list]]
print[reversed_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
6 untuk memperjelas apa yang dilakukan objek irisanPertanyaan yang Sering Diajukan
Apa cara terbaik untuk membalikkan daftar dengan Python?
Cara terbaik dan paling Pythonic untuk membalikkan daftar dengan Python adalah dengan menggunakan metode
# Reverse a Python list with reversed[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = list[reversed[original_list]]
print[reversed_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
7. Metode ini membalikkan daftar dan merupakan cara paling jelas untuk mengomunikasikan kepada pembaca Anda apa yang Anda lakukanBagaimana Anda membalikkan daftar dengan Python menggunakan slicing?
Cara terbaik untuk membalikkan daftar menggunakan slicing dengan Python adalah dengan menggunakan pengindeksan negatif. Ini memungkinkan Anda melangkahi daftar menggunakan -1, dengan menggunakan kode
# Reverse a Python list with reversed[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = list[reversed[original_list]]
print[reversed_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
8Apa cara tercepat untuk membalikkan daftar dengan Python?
Cara tercepat untuk membalikkan daftar dengan Python adalah dengan menggunakan loop for [atau pemahaman daftar]. Metode ini ratusan kali lebih cepat daripada metode lain [bahkan saat diuji terhadap daftar dengan 100.000.000 item]
Kesimpulan
Dalam tutorial ini, Anda belajar cara membalikkan daftar dengan Python. Anda telah mempelajari cara kerja pengindeksan daftar dan cara ini dapat digunakan untuk membalikkan daftar. Anda kemudian mempelajari cara menggunakan metode
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
reversed_list = original_list.copy[]
reversed_list.reverse[]
print['Original List: ', original_list]
print['Reversed List: ', reversed_list]
# Returns:
# Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Reversed List: [9, 8, 7, 6, 5, 4, 3, 2, 1]
3 dan reversed[]
untuk membalikkan daftar. Kemudian, Anda belajar cara menggunakan for loop dan daftar pemahaman, serta fungsi slice