Một tính năng rất thú vị của Python là nó cho phép gán đồng thời. Cú pháp như sau:
var_name1, var_name2 = value1, value2
Điều này có thể hữu ích như một lối tắt để gán một số giá trị cùng một lúc, như thế này:
smart_1, cute_1, funny_1, quiet_1 = "John","Paul","Ringo","George"
Nhưng việc gán đồng thời thực sự hữu ích trong một kịch bản như hình dưới đây.
- Đầu tiên, chúng ta hãy xem xét một phương pháp không hoạt động:
a=5 b=10 a=b b=a print["ATTEMPT 1. The Wrong Way."] print[a] print[b]
- Tiếp theo, chúng ta hãy xem một phương pháp hoạt động, nhưng không phải là Pythonic:
a=5 b=10 temp=a a=b b=temp print["ATTEMPT 2. A Non-Pythonic Way that Works."] print[a] print[b]
- Cuối cùng, chúng ta hãy xem cách Pythonic, đó là sử dụng phép gán đồng thời:
a=5 b=10 a,b = b,a print["ATTEMPT 3. The Python Way."] print[a] print[b]
Đầu ra sẽ trông như thế này:
Mã chứng minh rằng sự gán đồng thời thực sự là đồng thời. Giá trị cho
smart_1, cute_1, funny_1, quiet_1 = "John","Paul","Ringo","George"
6 không thay đổi trước giá trị của smart_1, cute_1, funny_1, quiet_1 = "John","Paul","Ringo","George"
7, do đó smart_1, cute_1, funny_1, quiet_1 = "John","Paul","Ringo","George"
7 nhận được giá trị ban đầu là smart_1, cute_1, funny_1, quiet_1 = "John","Paul","Ringo","George"
6 và chúng ta có thể chuyển đổi các giá trị mà không cần sử dụng bước tạm thời để tạo biến tạm thời [và không có gì vô dụng].Trong Python, sử dụng toán tử
a=5
b=10
a=b
b=a
print["ATTEMPT 1. The Wrong Way."]
print[a]
print[b]
0 để gán các giá trị cho các biến.a = 100
b = 200
print[a]
# 100
print[b]
# 200
Bạn có thể gán các giá trị cho nhiều biến trên một dòng.
Bài viết này mô tả hai trường hợp sau đây.
- 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
Bạn có thể gán nhiều giá trị cho nhiều biến bằng cách tách các biến và giá trị bằng dấu phẩy
a=5
b=10
a=b
b=a
print["ATTEMPT 1. The Wrong Way."]
print[a]
print[b]
1.a, b = 100, 200
print[a]
# 100
print[b]
# 200
Bạn có thể gán cho nhiều hơn ba biến. Cũng có thể gán cho các 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 tuple.
a = 100, 200
print[a]
print[type[a]]
# [100, 200]
#
Nếu số lượng biến ở bên trái và số lượng giá trị bên phải không khớp, sẽ xảy ra
a=5
b=10
a=b
b=a
print["ATTEMPT 1. The Wrong Way."]
print[a]
print[b]
2, nhưng bạn có thể gán phần còn lại làm danh sách bằng cách nối lại a=5
b=10
a=b
b=a
print["ATTEMPT 1. The Wrong Way."]
print[a]
print[b]
3 cho tên 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
#
print[b]
print[type[b]]
# [200, 300]
#
*a, b = 100, 200, 300
print[a]
print[type[a]]
# [100, 200]
#
print[b]
print[type[b]]
# 300
#
Để biết thêm thông tin về
a=5
b=10
a=b
b=a
print["ATTEMPT 1. The Wrong Way."]
print[a]
print[b]
3 và cách gán các yếu tố của tuple và liệt kê cho nhiều biến, hãy xem bài viết sau.- Giải nén một tuple và danh sách trong Python
Cũng có thể trao đổi các giá trị của nhiều biến theo cùng một cách. Xem bài viết dưới đây.
- Giá trị hoán đổi trong danh sách hoặc giá trị của các biến trong Python
Gán cùng một giá trị cho nhiều biến
Bạn có thể gán cùng một giá trị cho nhiều biến bằng cách sử dụng
a=5
b=10
a=b
b=a
print["ATTEMPT 1. The Wrong Way."]
print[a]
print[b]
0 liên tiếp.Điều này rất hữu ích, ví dụ, khi khởi tạo nhiều biến thành cùng một giá trị.
smart_1, cute_1, funny_1, quiet_1 = "John","Paul","Ringo","George"
0Cũng có thể gán một giá trị khác thành một sau khi gán cùng một giá trị. Như được mô tả sau, phải cẩn thận khi gán các đối tượng có thể thay đổi như danh sách hoặc từ điển.
smart_1, cute_1, funny_1, quiet_1 = "John","Paul","Ringo","George"
1Ngay cả ba hoặc nhiều hơn có thể được viết theo cùng một cách.
smart_1, cute_1, funny_1, quiet_1 = "John","Paul","Ringo","George"
2Hãy cẩn thận khi gán các đối tượng có thể thay đổi như
a=5
b=10
a=b
b=a
print["ATTEMPT 1. The Wrong Way."]
print[a]
print[b]
6 hoặc a=5
b=10
a=b
b=a
print["ATTEMPT 1. The Wrong Way."]
print[a]
print[b]
7 thay vì các đối tượng bất biến như a=5
b=10
a=b
b=a
print["ATTEMPT 1. The Wrong Way."]
print[a]
print[b]
8, a=5
b=10
a=b
b=a
print["ATTEMPT 1. The Wrong Way."]
print[a]
print[b]
9 hoặc a=5
b=10
temp=a
a=b
b=temp
print["ATTEMPT 2. A Non-Pythonic Way that Works."]
print[a]
print[b]
0.Nếu bạn sử dụng
a=5
b=10
a=b
b=a
print["ATTEMPT 1. The Wrong Way."]
print[a]
print[b]
0 liên tiếp, cùng một đối tượng được gán cho tất cả các biến, vì vậy nếu bạn thay đổi giá trị của phần tử hoặc thêm phần tử mới, thì khác cũng sẽ thay đổi.smart_1, cute_1, funny_1, quiet_1 = "John","Paul","Ringo","George"
3Giống như dưới đây.
smart_1, cute_1, funny_1, quiet_1 = "John","Paul","Ringo","George"
4
Nếu bạn muốn xử lý chúng một cách riêng biệt, bạn cần phải gán chúng cho từng.
Sau
2,a=5 b=10 temp=a a=b b=temp print["ATTEMPT 2. A Non-Pythonic Way that Works."] print[a] print[b]
3 vàa=5 b=10 temp=a a=b b=temp print["ATTEMPT 2. A Non-Pythonic Way that Works."] print[a] print[b]
4 được đảm bảo để chỉ hai danh sách trống khác nhau, duy nhất, mới được tạo ra. [Lưu ý rằnga=5 b=10 temp=a a=b b=temp print["ATTEMPT 2. A Non-Pythonic Way that Works."] print[a] print[b]
5 gán cùng một đối tượng cho cảa=5 b=10 temp=a a=b b=temp print["ATTEMPT 2. A Non-Pythonic Way that Works."] print[a] print[b]
3 vàa=5 b=10 temp=a a=b b=temp print["ATTEMPT 2. A Non-Pythonic Way that Works."] print[a] print[b]
4.] 3. Mô hình dữ liệu - Tài liệu Python 3.8.0a=5 b=10 temp=a a=b b=temp print["ATTEMPT 2. A Non-Pythonic Way that Works."] print[a] print[b]
smart_1, cute_1, funny_1, quiet_1 = "John","Paul","Ringo","George"
5Bạn cũng có thể sử dụng
a=5
b=10
temp=a
a=b
b=temp
print["ATTEMPT 2. A Non-Pythonic Way that Works."]
print[a]
print[b]
8 hoặc a=5
b=10
temp=a
a=b
b=temp
print["ATTEMPT 2. A Non-Pythonic Way that Works."]
print[a]
print[b]
9 của mô -đun sao chép để tạo các bản sao nông và sâu. Xem bài viết sau đây.- Bản sao nông và sâu trong Python: Copy [], DeepCopy []