Gán nhiều hoặc cùng một giá trị cho nhiều biến trong Python

Kinh doanh

Trong Python, toán tử = được sử dụng để gán giá trị cho các biến.

a = 100
b = 200

print(a)
# 100

print(b)
# 200

Như trong ví dụ trên, bạn có thể gán giá trị cho nhiều biến cùng một lúc thay vì từng biến một, điều này rất tiện lợi vì chỉ cần một dòng mã đơn giản để viết.

Hai trường hợp sau đây được mô tả.

  • Gán nhiều giá trị cho nhiều biến
  • Gán cùng một giá trị cho nhiều biến

Gán nhiều giá trị cho nhiều biến

Nhiều giá trị có thể được gán cho nhiều biến đồng thời bằng cách phân tách các biến và giá trị bằng dấu phẩy.

a, b = 100, 200

print(a)
# 100

print(b)
# 200

Có thể chấp nhận ba hoặc nhiều biến, mỗi biến thuộc một loại khác nhau.

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

print(a)
# 0.1

print(b)
# 100

print(c)
# string

Nếu có một biến ở phía bên trái, nó được gán dưới dạng một bộ giá trị.

a = 100, 200

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

Nếu số lượng biến ở phía bên trái không khớp với số lượng giá trị ở phía bên phải, lỗi ValueError sẽ dẫn đến, nhưng phần còn lại có thể được gán dưới dạng danh sách bằng cách thêm dấu hoa thị vào biến.

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

Để biết thêm thông tin về dấu hoa thị và cách gán các phần tử của một bộ hoặc danh sách cho nhiều biến, hãy xem bài viết sau.

Gán cùng một giá trị cho nhiều biến

Có thể gán cùng một giá trị cho nhiều biến bằng cách sử dụng = liên tiếp. Điều này rất hữu ích để khởi tạo nhiều biến với cùng một giá trị.

a = b = 100

print(a)
# 100

print(b)
# 100

Nhiều hơn 3 miếng có thể chấp nhận được.

a = b = c = 'string'

print(a)
# string

print(b)
# string

print(c)
# string

Sau khi gán cùng một giá trị, một giá trị khác có thể được gán cho một trong số chúng.

a = 200

print(a)
# 200

print(b)
# 100

Hãy cẩn thận khi gán các đối tượng có thể thay đổi như danh sách và các loại từ điển, thay vì các đối tượng không thể thay đổi (không thể thay đổi) như số nguyên, số dấu phẩy động và chuỗi.

Sử dụng = liên tiếp có nghĩa là tất cả các biến đều trỏ đến cùng một đối tượng, vì vậy nếu bạn thay đổi giá trị của một phần tử hoặc thêm một phần tử mới thì phần tử kia cũng sẽ thay đổi theo.

a = b = [0, 1, 2]

print(a is b)
# True

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

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

Tương tự như bên dưới.

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

print(a is b)
# True

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

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

Nếu bạn muốn xử lý chúng riêng biệt, chỉ cần gán cho từng.

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]

Ngoài ra còn có các phương pháp để tạo các bản sao nông và sâu với copy () và deepcopy () trong mô-đun sao chép.

Copied title and URL