Bagaimana Anda membalikkan daftar dalam mengiris dengan python?

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 slice

Meskipun 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 capai

Cara 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 Python

Sekarang 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

  1. Indeks Positif. Daftar Python akan dimulai pada posisi
    # 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]
    3 dan berlanjut hingga indeks panjang minus 1
  2. Indeks Negatif. Daftar Python dapat diindeks secara terbalik, mulai dari posisi
    # 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, pindah ke nilai negatif dari panjang daftar

Gambar di bawah menunjukkan bagaimana item daftar dapat diindeks

Bagaimana Anda membalikkan daftar dalam mengiris dengan python?
Cara kerja pengindeksan daftar Python

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 Python

Balikkan 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 baru

Mari 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 disalin

Di 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 daftar

Kami 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 daftar

Intinya, 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 ini

Di 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]
0

Misalnya, 

# 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 pertama

Memindahkan 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

  1. Kami mendefinisikan dua daftar, daftar asli kami dan daftar kosong untuk menyimpan item terbalik kami
  2. 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

  1. Kami membuat variabel
    # 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]
    3 yang mewakili panjang daftar dikurangi satu
  2. 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 berbeda

Mari 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 irisan

Pertanyaan 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 lakukan

Bagaimana 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]
8

Apa 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

Operasi irisan mana yang akan membalikkan daftar?

reverse() . Menggunakan " [. -1] ” trik mengiris daftar untuk membuat salinan terbalik. Membuat iterator terbalik dengan fungsi built-in reversed().

Bagaimana Anda membalikkan angka saat mengiris?

Contoh 1. Membalikkan Angka menggunakan pengirisan String . Jika input yang diberikan bukan angka, kami akan mencetak pesan ke pengguna. mencoba. n = int(input('Masukkan angka. ')) terbalik = int(str(n)[. -1]) cetak(terbalik) kecuali ValueError. print('Masukan yang diberikan bukan angka.

Bagaimana cara membalikkan daftar dengan Python tanpa membalikkan fungsi dan mengiris?

Cara lain untuk membalikkan daftar python tanpa menggunakan metode bawaan apa pun adalah menggunakan loop . Buat daftar kosong untuk menyalin elemen terbalik. Di loop for, tambahkan iterator sebagai elemen daftar di awal dengan elemen daftar baru. Jadi dengan cara itu, elemen daftar akan dibalik.