Menetapkan berbilang atau nilai yang sama kepada berbilang pembolehubah dalam Python

Perniagaan

Dalam Python, operator = digunakan untuk memberikan nilai kepada pembolehubah.

a = 100
b = 200

print(a)
# 100

print(b)
# 200

Seperti dalam contoh di atas, anda boleh menetapkan nilai kepada berbilang pembolehubah sekaligus dan bukannya satu demi satu, yang mudah kerana ia memerlukan hanya satu baris kod ringkas untuk menulis.

Dua kes berikut diterangkan.

  • Berikan berbilang nilai kepada berbilang pembolehubah
  • Berikan nilai yang sama kepada berbilang pembolehubah

Berikan berbilang nilai kepada berbilang pembolehubah

Berbilang nilai boleh diberikan kepada berbilang pembolehubah secara serentak dengan memisahkan pembolehubah dan nilai dengan koma.

a, b = 100, 200

print(a)
# 100

print(b)
# 200

Tiga atau lebih pembolehubah, setiap satu daripada jenis yang berbeza, boleh diterima.

a, b, c = 0.1, 100, 'string'

print(a)
# 0.1

print(b)
# 100

print(c)
# string

Jika terdapat satu pembolehubah di sebelah kiri, ia ditetapkan sebagai tupel.

a = 100, 200

print(a)
print(type(a))
# (100, 200)
# <class 'tuple'>

Jika bilangan pembolehubah di sebelah kiri tidak sepadan dengan bilangan nilai di sebelah kanan, ralat ValueError akan terhasil, tetapi selebihnya boleh ditetapkan sebagai senarai dengan menambahkan asterisk pada pembolehubah.

# a, b = 100, 200, 300
# ValueError: too many values to unpack (expected 2)

# a, b, c = 100, 200
# ValueError: not enough values to unpack (expected 3, got 2)

a, *b = 100, 200, 300

print(a)
print(type(a))
# 100
# <class 'int'>

print(b)
print(type(b))
# [200, 300]
# <class 'list'>

*a, b = 100, 200, 300

print(a)
print(type(a))
# [100, 200]
# <class 'list'>

print(b)
print(type(b))
# 300
# <class 'int'>

Untuk mendapatkan maklumat lanjut tentang asterisk dan cara menetapkan elemen tuple atau senarai kepada berbilang pembolehubah, lihat artikel berikut.

Berikan nilai yang sama kepada berbilang pembolehubah

Nilai yang sama boleh diberikan kepada berbilang pembolehubah dengan menggunakan = berturut-turut. Ini berguna untuk memulakan berbilang pembolehubah kepada nilai yang sama.

a = b = 100

print(a)
# 100

print(b)
# 100

Lebih daripada 3 keping boleh diterima.

a = b = c = 'string'

print(a)
# string

print(b)
# string

print(c)
# string

Selepas memberikan nilai yang sama, nilai lain boleh diberikan kepada salah satu daripadanya.

a = 200

print(a)
# 200

print(b)
# 100

Berhati-hati apabila menetapkan objek boleh ubah seperti senarai dan jenis kamus, dan bukannya objek tidak boleh ubah (tidak boleh ditukar) seperti integer, nombor titik terapung dan rentetan.

Menggunakan = berturut-turut bermakna semua pembolehubah menghala ke objek yang sama, jadi jika anda menukar nilai satu elemen atau menambah elemen baharu, yang lain akan berubah juga.

a = b = [0, 1, 2]

print(a is b)
# True

a[0] = 100
print(a)
# [100, 1, 2]

print(b)
# [100, 1, 2]

Sama seperti di bawah.

b = [0, 1, 2]
a = b

print(a is b)
# True

a[0] = 100
print(a)
# [100, 1, 2]

print(b)
# [100, 1, 2]

Jika anda ingin memprosesnya secara berasingan, hanya berikan kepada setiap satu.

after c = []; d = [], c and d are guaranteed to refer to two different, unique, newly created empty lists. (Note that c = d = [] assigns the same object to both c and d.)
3. Data model — Python 3.10.4 Documentation

a = [0, 1, 2]
b = [0, 1, 2]

print(a is b)
# False

a[0] = 100
print(a)
# [100, 1, 2]

print(b)
# [0, 1, 2]

Terdapat juga kaedah untuk menjana salinan cetek dan dalam dengan copy() dan deepcopy() dalam modul salinan.

Copied title and URL