Tuple giải nén Python

Trong Python, bạn có thể gán các phần tử của một bộ hoặc danh sách cho nhiều biến. Nó được gọi là giải nén trình tự

  • 5. Cấu trúc dữ liệu — Python 3. 7. tài liệu 4rc1

Bài viết này mô tả các nội dung sau

  • Khái niệm cơ bản về giải nén một Tuple và một danh sách
  • Giải nén một tuple lồng nhau và liệt kê
  • Giải nén với
    a, b = 0, 1
    
    print(a)
    print(b)
    # 0
    # 1
    
    1 (gạch dưới)
  • Giải nén với
    a, b = 0, 1
    
    print(a)
    print(b)
    # 0
    # 1
    
    2 (dấu hoa thị)

Xem bài viết sau để biết trường hợp giải nén bộ dữ liệu, danh sách và từ điển (

a, b = 0, 1

print(a)
print(b)
# 0
# 1
3) làm đối số với
a, b = 0, 1

print(a)
print(b)
# 0
# 1
2 (dấu hoa thị)

  • Giải nén và chuyển danh sách, tuple, dict sang đối số hàm trong Python

Liên kết được tài trợ

Khái niệm cơ bản về giải nén một Tuple và một danh sách

Nếu bạn viết các biến ở phía bên trái được phân tách bằng dấu phẩy

a, b = 0, 1

print(a)
print(b)
# 0
# 1
5, các phần tử của một bộ hoặc danh sách ở phía bên phải sẽ được gán cho mỗi biến. Các ví dụ sau sử dụng bộ dữ liệu, nhưng điều này cũng đúng với danh sách

t = (0, 1, 2)

a, b, c = t

print(a)
print(b)
print(c)
# 0
# 1
# 2

l = [0, 1, 2]

a, b, c = l

print(a)
print(b)
print(c)
# 0
# 1
# 2

nguồn. tuple_list_unpack. py

Vì có thể bỏ qua dấu ngoặc đơn của các bộ, nên có thể gán nhiều giá trị cho nhiều biến trong một dòng như sau

  • Nhiều bài tập trong Python. Gán nhiều giá trị hoặc cùng một giá trị cho nhiều biến

a, b = 0, 1

print(a)
print(b)
# 0
# 1

nguồn. tuple_list_unpack. py

Một lỗi được đưa ra nếu số lượng biến không khớp với số lượng phần tử

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

# a, b, c, d = t
# ValueError: not enough values to unpack (expected 4, got 3)

nguồn. tuple_list_unpack. py

Nếu số biến ít hơn số phần tử, có thể thêm dấu sao

a, b = 0, 1

print(a)
print(b)
# 0
# 1
2 vào tên biến và gán các phần tử còn lại dưới dạng danh sách. Điều này được mô tả sau

Giải nén một tuple lồng nhau và liệt kê

Bạn cũng có thể giải nén một bộ dữ liệu hoặc danh sách lồng nhau. Nếu bạn muốn mở rộng phần tử bên trong, hãy đặt biến với

a, b = 0, 1

print(a)
print(b)
# 0
# 1
7 hoặc
a, b = 0, 1

print(a)
print(b)
# 0
# 1
8

a, b = 0, 1

print(a)
print(b)
# 0
# 1
1

nguồn. tuple_list_unpack. py

Liên kết được tài trợ

Giải nén với a, b = 0, 1 print(a) print(b) # 0 # 1 1 (gạch dưới)

Theo quy ước, các giá trị không cần thiết có thể được gán cho dấu gạch dưới

a, b = 0, 1

print(a)
print(b)
# 0
# 1
1 trong Python. Nó không có ý nghĩa đặc biệt về mặt ngữ pháp mà chỉ đơn giản được gán cho một biến có tên là
a, b = 0, 1

print(a)
print(b)
# 0
# 1
1

a, b = 0, 1

print(a)
print(b)
# 0
# 1
5

nguồn. tuple_list_unpack. py

Giải nén với a, b = 0, 1 print(a) print(b) # 0 # 1 2 (dấu hoa thị)

Nếu số lượng biến nhỏ hơn số lượng phần tử, thêm dấu hoa thị

a, b = 0, 1

print(a)
print(b)
# 0
# 1
2 vào tên biến sẽ gán các phần tử với nhau dưới dạng danh sách

Nó được triển khai trong Python 3 và không thể sử dụng trong Python 2

Các phần tử từ đầu và cuối được gán cho các biến không có

a, b = 0, 1

print(a)
print(b)
# 0
# 1
2 và các phần tử còn lại được gán dưới dạng danh sách cho các biến có
a, b = 0, 1

print(a)
print(b)
# 0
# 1
2

a, b = 0, 1

print(a)
print(b)
# 0
# 1
0

nguồn. tuple_list_unpack. py

Ví dụ, khi chỉ muốn gán hai phần tử đầu tiên của một bộ hoặc một danh sách cho các biến, dấu gạch dưới

a, b = 0, 1

print(a)
print(b)
# 0
# 1
1 có thể được sử dụng cho các phần không cần thiết

a, b = 0, 1

print(a)
print(b)
# 0
# 1
2

nguồn. tuple_list_unpack. py

Quá trình tương tự có thể được viết như sau

a, b = 0, 1

print(a)
print(b)
# 0
# 1
3

nguồn. tuple_list_unpack. py

Bạn chỉ có thể thêm

a, b = 0, 1

print(a)
print(b)
# 0
# 1
2 vào một biến

Nếu có nhiều biến với

a, b = 0, 1

print(a)
print(b)
# 0
# 1
2, không xác định được có bao nhiêu phần tử được gán, vì vậy
# a, b = t
# ValueError: too many values to unpack (expected 2)

# a, b, c, d = t
# ValueError: not enough values to unpack (expected 4, got 3)
9 được nâng lên

a, b = 0, 1

print(a)
print(b)
# 0
# 1
7

nguồn. tuple_list_unpack. py

Lưu ý rằng ngay cả khi chỉ một phần tử được gán cho một biến có

a, b = 0, 1

print(a)
print(b)
# 0
# 1
2, thì nó được gán dưới dạng danh sách

Giải nén tuple trong Python là gì?

Các bộ dữ liệu Python là bất biến có nghĩa là chúng không thể được sửa đổi trong toàn bộ chương trình. Đóng gói và giải nén một Tuple. Trong Python, có một tính năng gán bộ rất mạnh giúp gán phía bên phải của các giá trị cho phía bên trái. Nói cách khác, nó được gọi là giải nén một bộ giá trị thành một biến .

Có thể giải nén trong một tuple không?

Giải nén Tuple . Số lượng biến phải khớp với số lượng giá trị trong bộ, nếu không, bạn phải sử dụng dấu hoa thị để thu thập các giá trị còn lại dưới dạng danh sách .

Tại sao giải nén tuple lại quan trọng trong Python?

Việc đóng gói và giải nén có thể được sử dụng cho bất kỳ đối tượng có thể lặp lại nào nhưng một trong những cách sử dụng nổi tiếng đã thuộc về các đối tượng tuple. Một trong những tác động lớn nhất của việc sử dụng đóng gói và giải nén là nó cải thiện khả năng đọc mã của bạn .

Trình tự giải nén trong Python là gì?

Giải nén trình tự trong python cho phép bạn lấy các đối tượng trong một bộ sưu tập và lưu trữ chúng trong các biến để sử dụng sau này . Điều này đặc biệt hữu ích khi một hàm hoặc phương thức trả về một chuỗi các đối tượng.