Cara Menukar Dua Variabel dengan Python (Tanpa Variabel Temp)

Pelajari cara menukar dua variabel dengan Python. Pahami pengepakan dan pembongkaran tupel Pythonic, dan bandingkan dengan pertukaran variabel sementara tradisional.

Coba Solusi ini di Editor

Ikhtisar

Menukar nilai dua variabel adalah operasi klasik yang digunakan dalam algoritma pengurutan, penugasan ulang variabel, dan rotasi nilai. Dalam bahasa pemrograman tingkat rendah seperti C, C++, atau Java, swapping memerlukan deklarasi variabel sementara untuk menampung satu nilai sehingga tidak ditimpa selama penugasan.

Dengan Python, Anda dapat mencapai pertukaran ini dalam satu baris tanpa menggunakan penyimpanan sementara apa pun: `a, b = b, a`. Pendekatan elegan ini tidak hanya lebih bersih namun juga sangat optimal. Di bawah tenda, Python menggunakan pengepakan dan pembongkaran tupel untuk melakukan pertukaran dengan aman.

Ketika Python mengevaluasi `a, b = b, a`, pertama-tama ia membangun sebuah tupel yang berisi nilai `(b, a)` di memori (pengemasan tupel). Kemudian, tupel tersebut dibongkar kembali ke dalam variabel di sisi kiri, menetapkan nilai lama `b` ke `a`, dan nilai lama `a` ke `b` (pembongkaran tupel). Hal ini menjamin bahwa kedua variabel diperbarui secara bersamaan tanpa benturan data.

Kode & Output Eksekusi

Kode ini menunjukkan pertukaran dua variabel dengan Python menggunakan tuple unpacking dan membandingkannya dengan metode variabel temp tradisional.

swap_variables.py
Coba di Editor
x = 10
y = 20
print(f"Original: x = {x}, y = {y}")

# 1. The Pythonic Way (Tuple unpacking)
x, y = y, x
print(f"Pythonic Swap: x = {x}, y = {y}")

# 2. The Traditional Way (Using a temporary variable)
temp = x
x = y
y = temp
print(f"Traditional Swap: x = {x}, y = {y}")
Keluaran Terminal
Original: x = 10, y = 20
Pythonic Swap: x = 20, y = 10
Traditional Swap: x = 10, y = 20

Implementasi Langkah demi Langkah

  • Tempatkan variabel yang ingin Anda terima nilainya di sisi kiri tugas: variabel1, variabel2.
  • Tempatkan variabel yang berisi nilai sumber di sisi kanan: variabel2, variabel1.
  • Gunakan operator penugasan (=) untuk memicu pertukaran tuple pengepakan dan pembongkaran otomatis Python.

Pertanyaan yang Sering Diajukan

Apakah Tuple Unpacking Swap aman dari kondisi balapan?

Dalam lingkungan single-thread, ini sepenuhnya bersifat atomik karena ekspresi di sebelah kanan dievaluasi sepenuhnya menjadi tupel sebelum penetapan apa pun ke variabel sebelah kiri dimulai.

Bisakah saya menukar lebih dari dua variabel secara bersamaan?

Iya! Anda dapat menukar sejumlah variabel menggunakan sintaks tupel yang sama. Misalnya, a, b, c = b, c, a menggeser nilainya ke kiri.

Topik Terkait

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.