Hướng dẫn can we unpack lists in python? - chúng ta có thể giải nén danh sách trong python không?

Tóm tắt: Trong hướng dẫn này, bạn sẽ học cách giải nén danh sách trong Python để làm cho mã của bạn súc tích hơn.: in this tutorial, you’ll learn how to unpack a list in Python to make your code more concise.

Giới thiệu về danh sách giải nén

Ví dụ sau đây xác định danh sách các chuỗi:

colors = ['red', 'blue', 'green']

Code language: Python (python)

Để gán các phần tử thứ nhất, thứ hai và thứ ba của danh sách cho các biến, bạn có thể gán các yếu tố riêng lẻ cho các biến như thế này:

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)

Tuy nhiên, Python cung cấp một cách tốt hơn để làm điều này. Nó được gọi là trình tự giải nén.

Về cơ bản, bạn có thể gán các yếu tố của một danh sách (và cũng là một tuple) cho nhiều biến. Ví dụ:

red, blue, green = colors

Code language: Python (python)

Câu lệnh này gán các phần tử thứ nhất, thứ hai và thứ ba của danh sách

red, blue, green = colors

Code language: Python (python)
0 cho các biến

red, blue, green = colors

Code language: Python (python)
1,

red, blue, green = colors

Code language: Python (python)
2 và

red, blue, green = colors

Code language: Python (python)
3.

Trong ví dụ này, số lượng biến ở phía bên trái giống như số lượng các phần tử trong danh sách ở phía bên phải.

Nếu bạn sử dụng số lượng biến số ở phía bên trái hơn, bạn sẽ gặp lỗi. Ví dụ:

colors = ['red', 'blue', 'green'] red, blue = colors

Code language: Python (python)

Error:

ValueError: too many values to unpack (expected 2)

Code language: Python (python)

Trong trường hợp này, Python không thể giải nén ba yếu tố cho hai biến.

Giải nén và đóng gói

Nếu bạn muốn giải nén một vài yếu tố đầu tiên của danh sách và không quan tâm đến các yếu tố khác, bạn có thể:

  • Đầu tiên, giải nén các yếu tố cần thiết cho các biến.
  • Thứ hai, đóng gói các phần tử còn lại vào một danh sách mới và gán nó cho một biến khác.

Bằng cách đặt dấu hoa thị (

red, blue, green = colors

Code language: Python (python)
4) trước một tên biến, bạn sẽ đóng gói các phần tử còn lại vào một danh sách và gán chúng cho một biến. Ví dụ:

colors = ['red', 'blue', 'green'] red, blue, *other = colors print(red) print(blue) print(other)

Code language: Python (python)

Output:

red blue ['green']

Code language: Python (python)

Ví dụ này gán các phần tử thứ nhất và thứ hai của danh sách

red, blue, green = colors

Code language: Python (python)
0 cho các biến

red, blue, green = colors

Code language: Python (python)
1 và

red, blue, green = colors

Code language: Python (python)
3. Và nó gán phần tử cuối cùng của danh sách cho biến

red, blue, green = colors

Code language: Python (python)
8.

Ở đây, một ví dụ khác:

colors = ['cyan', 'magenta', 'yellow', 'black'] cyan, magenta, *other = colors print(cyan) print(magenta) print(other)

Code language: Python (python)

Output:

cyan magenta ['yellow', 'black']

Code language: Python (python)

Ví dụ này gán các phần tử thứ nhất và thứ hai cho các biến. Nó đóng gói hai yếu tố cuối cùng trong một danh sách mới và gán danh sách mới cho biến

red, blue, green = colors

Code language: Python (python)
8.

Bản tóm tắt

  • Giải nén gán các phần tử của danh sách cho nhiều biến.
  • Sử dụng dấu hoa thị ( *) trước một biến như *biến_name này để đóng gói các phần tử còn sót lại của danh sách vào danh sách khác.

Bạn có thấy hướng dẫn này hữu ích không?

Trong Python, bạn có thể gán các yếu tố của một tuple hoặc liệt kê cho nhiều biến. Nó được gọi là trình tự giải nén.

  • 5. Cấu trúc dữ liệu - Tài liệu Python 3.7.4RC1

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

  • Những điều cơ bản về việc giải nén một tuple và một danh sách
  • Giải nén một danh sách và danh sách lồng nhau
  • Giải nén với

    colors = ['red', 'blue', 'green'] red, blue = colors

    Code language: Python (python)
    0 (dấu gạch dưới)
  • Giải nén với

    red, blue, green = colors

    Code language: Python (python)
    4 (dấu hoa thị)

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

colors = ['red', 'blue', 'green'] red, blue = colors

Code language: Python (python)
2) là đối số với

red, blue, green = colors

Code language: Python (python)
4 (dấu hoa thị).

  • Giải nén và vượt qua danh sách

Những điều cơ bản về việc giải nén một tuple và một danh sách

Giải nén một danh sách và danh sách lồng nhau

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

Giải nén với

colors = ['red', 'blue', 'green'] red, blue = colors

Code language: Python (python)
0 (dấu gạch dưới)

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

    colors = ['red', 'blue', 'green'] red, blue = colors

    Code language: Python (python)
    2) là đối số với

    red, blue, green = colors

    Code language: Python (python)
    4 (dấu hoa thị).

Giải nén và vượt qua 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

colors = ['red', 'blue', 'green'] red, blue = colors

Code language: Python (python)
4, các phần tử của một tuple hoặc danh sách ở phía bên phải được gán cho mỗi biến. Các ví dụ sau đây sử dụng các bộ dữ liệu, nhưng điều tương tự cũng đúng với danh sách.

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
1

Bởi vì dấu ngoặc đơn của các bộ dữ liệu có thể được bỏ qua, nhiều giá trị có thể được gán cho nhiều biến trong một dòng như sau.

Giải nén một danh sách và danh sách lồng nhau

Giải nén với

colors = ['red', 'blue', 'green'] red, blue = colors

Code language: Python (python)
0 (dấu gạch dưới)

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
2

Giải nén với colors = ['red', 'blue', 'green'] red, blue = colors Code language: Python (python)0 (dấu gạch dưới)

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

colors = ['red', 'blue', 'green'] red, blue = colors

Code language: Python (python)
2) là đối số với

red, blue, green = colors

Code language: Python (python)
4 (dấu hoa thị).

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
3

Giải nén với red, blue, green = colorsCode language: Python (python)4 (dấu hoa thị)

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

red, blue, green = colors

Code language: Python (python)
4 vào tên biến sẽ gán các phần tử lại với nhau như một danh sách.

Nó được thực hiện trong Python 3 và không thể được sử dụng trong Python 2.

Các phần tử từ đầu và kết thúc được gán cho các biến mà không có

red, blue, green = colors

Code language: Python (python)
4 và các phần tử còn lại được gán làm danh sách cho các biến có

red, blue, green = colors

Code language: Python (python)
4.

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
4

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

colors = ['red', 'blue', 'green'] red, blue = colors

Code language: Python (python)
0 có thể được sử dụng cho các bộ phận không cần thiết.

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
5

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

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
6

Bạn có thể thêm

red, blue, green = colors

Code language: Python (python)
4 vào chỉ một biến.

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

red, blue, green = colors

Code language: Python (python)
4, không thể xác định được có bao nhiêu yếu tố được chỉ định, do đó

ValueError: too many values to unpack (expected 2)

Code language: Python (python)
8 được nâng lên.

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
7

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

red, blue, green = colors

Code language: Python (python)
4, nó được gán như một danh sách.

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
8

Nếu không có các yếu tố bổ sung, một danh sách trống được gán.

red = colors[0] blue = colors[1] green = colors[2]

Code language: Python (python)
9