Hướng dẫn how do you enumerate a list in python? - làm cách nào để liệt kê một danh sách trong python?

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: lặp lại với Python Enumerate () This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Looping With Python enumerate()

Show

Trong Python, một vòng

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2 thường được viết dưới dạng vòng lặp trên một đối tượng có thể lặp lại. Điều này có nghĩa là bạn không cần một biến đếm để truy cập các mục trong ITBEABLE. Tuy nhiên, đôi khi, bạn muốn có một biến thay đổi trên mỗi lần lặp vòng lặp. Thay vì tự tạo và tăng một biến, bạn có thể sử dụng Python từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 để có được một bộ đếm và giá trị từ điều đáng tin cậy cùng một lúc!
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3
to get a counter and the value from the iterable at the same time!

Trong hướng dẫn này, bạn sẽ thấy cách:

  • Sử dụng
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    3 để lấy một quầy trong vòng lặp
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    3
    to get a counter in a loop
  • Áp dụng
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    3 để hiển thị số lượng vật phẩmdisplay item counts
  • Sử dụng
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    3 với các câu lệnh có điều kiệnconditional statements
  • Thực hiện chức năng tương đương của riêng bạn thành
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    3equivalent function to
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    3
  • Giải nén các giá trị được trả về bởi
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    3
    returned by
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    3

Bắt đầu nào!

Lặp lại với các vòng >>> index = 0 >>> for value in values: ... print(index, value) ... 0 a 0 b 0 c 2 trong Python

Vòng lặp

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2 trong Python sử dụng phép lặp dựa trên bộ sưu tập. Điều này có nghĩa là Python gán mục tiếp theo từ một biến có thể lặp lại cho biến vòng lặp trên mỗi lần lặp, giống như trong ví dụ này:collection-based iteration. This means that Python assigns the next item from an iterable to the loop variable on every iteration, like in this example:

>>>

>>> values = ["a", "b", "c"]

>>> for value in values:
...     print(value)
...
a
b
c

Trong ví dụ này,

>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1 là một danh sách với ba chuỗi,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
2,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
3 và
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
4. Trong Python, danh sách là một loại đối tượng có thể lặp lại. Trong vòng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2, biến vòng lặp là
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6. Trên mỗi lần lặp của vòng lặp,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6 được đặt thành mục tiếp theo từ
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1.

Tiếp theo, bạn in

>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6 lên màn hình. Ưu điểm của việc lặp lại dựa trên bộ sưu tập là nó giúp tránh lỗi ngoài từng người phổ biến trong các ngôn ngữ lập trình khác.

Bây giờ hãy tưởng tượng rằng, ngoài chính giá trị, bạn muốn in chỉ mục của mục trong danh sách lên màn hình trên mỗi lần lặp. Một cách để tiếp cận nhiệm vụ này là tạo một biến để lưu trữ chỉ mục và cập nhật nó trên mỗi lần lặp:

>>>

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c

Trong ví dụ này,

>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1 là một danh sách với ba chuỗi,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
2,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
3 và
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
4. Trong Python, danh sách là một loại đối tượng có thể lặp lại. Trong vòng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2, biến vòng lặp là
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6. Trên mỗi lần lặp của vòng lặp,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6 được đặt thành mục tiếp theo từ
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1.

>>>

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c

Trong ví dụ này,

>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1 là một danh sách với ba chuỗi,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
2,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
3 và
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
4. Trong Python, danh sách là một loại đối tượng có thể lặp lại. Trong vòng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2, biến vòng lặp là
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6. Trên mỗi lần lặp của vòng lặp,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6 được đặt thành mục tiếp theo từ
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1.

Tiếp theo, bạn in

>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6 lên màn hình. Ưu điểm của việc lặp lại dựa trên bộ sưu tập là nó giúp tránh lỗi ngoài từng người phổ biến trong các ngôn ngữ lập trình khác.

>>>

>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c

Trong ví dụ này,

>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1 là một danh sách với ba chuỗi,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
2,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
3 và
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
4. Trong Python, danh sách là một loại đối tượng có thể lặp lại. Trong vòng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2, biến vòng lặp là
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6. Trên mỗi lần lặp của vòng lặp,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6 được đặt thành mục tiếp theo từ
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1.

Tiếp theo, bạn in

>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6 lên màn hình. Ưu điểm của việc lặp lại dựa trên bộ sưu tập là nó giúp tránh lỗi ngoài từng người phổ biến trong các ngôn ngữ lập trình khác.

Bây giờ hãy tưởng tượng rằng, ngoài chính giá trị, bạn muốn in chỉ mục của mục trong danh sách lên màn hình trên mỗi lần lặp. Một cách để tiếp cận nhiệm vụ này là tạo một biến để lưu trữ chỉ mục và cập nhật nó trên mỗi lần lặp:sequences in Python.

Trong ví dụ này,

>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
0 là một số nguyên theo dõi cách bạn đi vào danh sách. Trên mỗi lần lặp của vòng lặp, bạn in
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
0 cũng như
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6. Bước cuối cùng trong vòng lặp là cập nhật số được lưu trữ trong
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
0. Một lỗi phổ biến xảy ra khi bạn quên cập nhật
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
0 trên mỗi lần lặp:built-in function, which means that it’s been available in every version of Python since it was added in Python 2.3, way back in 2003.

Trong ví dụ này, >>> for count, value in enumerate(values): ... print(count, value) ... 0 a 1 b 2 c 0 ở lại >>> for count, value in enumerate(values): ... print(count, value) ... 0 a 1 b 2 c 6 trên mỗi lần lặp vì không có mã nào để cập nhật giá trị của nó ở cuối vòng lặp. Đặc biệt đối với các vòng dài hoặc phức tạp, loại lỗi này nổi tiếng là khó theo dõi.

Một cách phổ biến khác để tiếp cận vấn đề này là sử dụng

>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
7 kết hợp với
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
8 để tạo chỉ mục tự động. Bằng cách này, bạn không cần nhớ cập nhật chỉ mục:

>>>

>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c

Trong ví dụ này,

>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1 là một danh sách với ba chuỗi,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
2,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
3 và
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
4. Trong Python, danh sách là một loại đối tượng có thể lặp lại. Trong vòng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2, biến vòng lặp là
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6. Trên mỗi lần lặp của vòng lặp,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6 được đặt thành mục tiếp theo từ
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1.

  1. Tiếp theo, bạn in
    >>> for index in range(len(values)):
    ...     value = values[index]
    ...     print(index, value)
    ...
    0 a
    1 b
    2 c
    
    6 lên màn hình. Ưu điểm của việc lặp lại dựa trên bộ sưu tập là nó giúp tránh lỗi ngoài từng người phổ biến trong các ngôn ngữ lập trình khác.count of the current iteration
  2. Bây giờ hãy tưởng tượng rằng, ngoài chính giá trị, bạn muốn in chỉ mục của mục trong danh sách lên màn hình trên mỗi lần lặp. Một cách để tiếp cận nhiệm vụ này là tạo một biến để lưu trữ chỉ mục và cập nhật nó trên mỗi lần lặp:value of the item at the current iteration

Trong ví dụ này,

>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
0 là một số nguyên theo dõi cách bạn đi vào danh sách. Trên mỗi lần lặp của vòng lặp, bạn in
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
0 cũng như
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
6. Bước cuối cùng trong vòng lặp là cập nhật số được lưu trữ trong
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
0. Một lỗi phổ biến xảy ra khi bạn quên cập nhật
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
0 trên mỗi lần lặp:

Trong ví dụ này,

>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
0 ở lại
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
6 trên mỗi lần lặp vì không có mã nào để cập nhật giá trị của nó ở cuối vòng lặp. Đặc biệt đối với các vòng dài hoặc phức tạp, loại lỗi này nổi tiếng là khó theo dõi.

Python sườn

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 có một đối số bổ sung mà bạn có thể sử dụng để kiểm soát giá trị bắt đầu của số đếm. Theo mặc định, giá trị bắt đầu là
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
6 vì các loại chuỗi Python được lập chỉ mục bắt đầu bằng 0. Nói cách khác, khi bạn muốn truy xuất phần tử đầu tiên của danh sách, bạn sử dụng INDEX
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
6:

>>>

>>> print(values[0])
a

Bạn có thể thấy trong ví dụ này rằng việc truy cập

>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1 với chỉ mục
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
6 cung cấp cho phần tử đầu tiên,
>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
1. Tuy nhiên, có nhiều lần bạn có thể không muốn số lượng từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 bắt đầu tại
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
6. Chẳng hạn, bạn có thể muốn in một số đếm tự nhiên dưới dạng đầu ra cho người dùng. Trong trường hợp này, bạn có thể sử dụng đối số
>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
4 cho
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 để thay đổi số lượng bắt đầu:

>>>

>>> for count, value in enumerate(values, start=1):
...     print(count, value)
...
1 a
2 b
3 c

Bạn có thể thấy trong ví dụ này rằng việc truy cập

>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1 với chỉ mục
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
6 cung cấp cho phần tử đầu tiên,
>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
1. Tuy nhiên, có nhiều lần bạn có thể không muốn số lượng từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 bắt đầu tại
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
6. Chẳng hạn, bạn có thể muốn in một số đếm tự nhiên dưới dạng đầu ra cho người dùng. Trong trường hợp này, bạn có thể sử dụng đối số
>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
4 cho
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 để thay đổi số lượng bắt đầu:

Trong ví dụ này, bạn vượt qua >>> users = ["Test User", "Real User 1", "Real User 2"] >>> for index, user in enumerate(users): ... if index == 0: ... print("Extra verbose output for:", user) ... print(user) ... Extra verbose output for: Test User Real User 1 Real User 2 6, bắt đầu 1def check_whitespace(lines): 2 """Check for whitespace and line length issues.""" 3 for lno, line in enumerate(lines): 4 if "\r" in line: 5 yield lno+1, "\\r in line" 6 if "\t" in line: 7 yield lno+1, "OMG TABS!!!1" 8 if line[:-1].rstrip(" \t") != line[:-1]: 9 yield lno+1, "trailing whitespace" 1 với giá trị >>> users = ["Test User", "Real User 1", "Real User 2"] >>> for index, user in enumerate(users): ... if index == 0: ... print("Extra verbose output for:", user) ... print(user) ... Extra verbose output for: Test User Real User 1 Real User 2 8 trên vòng lặp vòng đầu tiên. So sánh điều này với các ví dụ trước, trong đó >>> users = ["Test User", "Real User 1", "Real User 2"] >>> for index, user in enumerate(users): ... if index == 0: ... print("Extra verbose output for:", user) ... print(user) ... Extra verbose output for: Test User Real User 1 Real User 2 4 có giá trị mặc định là >>> for count, value in enumerate(values): ... print(count, value) ... 0 a 1 b 2 c 6 và xem liệu bạn có thể phát hiện ra sự khác biệt hay không.

Thực hành với Python

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3

Bạn nên sử dụng >>> index = 0 >>> for value in values: ... print(index, value) ... 0 a 0 b 0 c 3 bất cứ lúc nào bạn cần sử dụng đếm và một mục trong một vòng lặp. Hãy nhớ rằng >>> index = 0 >>> for value in values: ... print(index, value) ... 0 a 0 b 0 c 3 tăng số lượng trên mỗi lần lặp. Tuy nhiên, điều này chỉ giới hạn một chút tính linh hoạt của bạn. Vì số lượng là một số nguyên Python tiêu chuẩn, bạn có thể sử dụng nó theo nhiều cách. Trong một vài phần tiếp theo, bạn sẽ thấy một số cách sử dụng của >>> index = 0 >>> for value in values: ... print(index, value) ... 0 a 0 b 0 c 3.

Số lượng vật phẩm tự nhiên của các mặt hàng có thể

Trong phần trước, bạn đã thấy cách sử dụng

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 với
>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
4 để tạo số đếm tự nhiên để in cho người dùng.
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 cũng được sử dụng như thế này trong cơ sở mã Python. Bạn có thể thấy một ví dụ trong tập lệnh đọc các tệp REST và cho người dùng biết khi có vấn đề định dạng.

 1def check_whitespace(lines):
 2    """Check for whitespace and line length issues."""
 3    for lno, line in enumerate(lines):
 4        if "\r" in line:
 5            yield lno+1, "\\r in line"
 6        if "\t" in line:
 7            yield lno+1, "OMG TABS!!!1"
 8        if line[:-1].rstrip(" \t") != line[:-1]:
 9            yield lno+1, "trailing whitespace"

Ví dụ này được sửa đổi một chút từ

>>> def even_items(iterable):
...     """Return items from ``iterable`` when their index is even."""
...     values = []
...     for index, value in enumerate(iterable, start=1):
...         if not index % 2:
...             values.append(value)
...     return values
...
8. Don Tiết lo lắng quá nhiều về cách chức năng này kiểm tra các vấn đề. Vấn đề là hiển thị việc sử dụng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 trong thế giới thực:

  1. >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...     index += 1
    ...
    0 a
    1 b
    2 c
    
    00 có một đối số,
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...     index += 1
    ...
    0 a
    1 b
    2 c
    
    01, đó là các dòng của tệp cần được đánh giá. Trên dòng thứ ba của
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...     index += 1
    ...
    0 a
    1 b
    2 c
    
    00,
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    3 được sử dụng trong một vòng lặp trên
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...     index += 1
    ...
    0 a
    1 b
    2 c
    
    01. Điều này trả về số dòng, được viết tắt là
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...     index += 1
    ...
    0 a
    1 b
    2 c
    
    05 và
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...     index += 1
    ...
    0 a
    1 b
    2 c
    
    06. Vì
    >>> users = ["Test User", "Real User 1", "Real User 2"]
    >>> for index, user in enumerate(users):
    ...     if index == 0:
    ...         print("Extra verbose output for:", user)
    ...     print(user)
    ...
    Extra verbose output for: Test User
    Real User 1
    Real User 2
    
    4 được sử dụng,
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...     index += 1
    ...
    0 a
    1 b
    2 c
    
    05 là bộ đếm dựa trên không dựa trên các dòng trong tệp.
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...     index += 1
    ...
    0 a
    1 b
    2 c
    
    00 sau đó thực hiện một số kiểm tra cho các ký tự ngoài vị trí:
  2. Trở về vận chuyển (
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...     index += 1
    ...
    0 a
    1 b
    2 c
    
    10)
  3. Ký tự tab (
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...     index += 1
    ...
    0 a
    1 b
    2 c
    
    11)

Bất kỳ khoảng trống hoặc tab nào ở cuối dòng

Khi một trong những mục này có mặt, >>> index = 0 >>> for value in values: ... print(index, value) ... index += 1 ... 0 a 1 b 2 c 00 sẽ mang lại số dòng hiện tại và một thông báo hữu ích cho người dùng. Biến số lượng >>> index = 0 >>> for value in values: ... print(index, value) ... index += 1 ... 0 a 1 b 2 c 05 có >>> users = ["Test User", "Real User 1", "Real User 2"] >>> for index, user in enumerate(users): ... if index == 0: ... print("Extra verbose output for:", user) ... print(user) ... Extra verbose output for: Test User Real User 1 Real User 2 8 được thêm vào để nó trả về số dòng đếm thay vì chỉ mục dựa trên không. Khi người dùng của >>> def even_items(iterable): ... """Return items from ``iterable`` when their index is even.""" ... values = [] ... for index, value in enumerate(iterable, start=1): ... if not index % 2: ... values.append(value) ... return values ... 8 đọc tin nhắn, họ sẽ biết dòng nào sẽ đến và những gì cần sửa.

Các tuyên bố có điều kiện để bỏ qua các mục

>>>

>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2

Sử dụng các tuyên bố có điều kiện để xử lý các mục có thể là một kỹ thuật rất mạnh mẽ. Đôi khi bạn có thể cần thực hiện một hành động chỉ trong lần lặp đầu tiên của một vòng lặp, như trong ví dụ này:

Trong ví dụ này, bạn sử dụng danh sách như một cơ sở dữ liệu giả của người dùng. Người dùng đầu tiên là người dùng thử nghiệm của bạn, vì vậy bạn muốn in thêm thông tin chẩn đoán về người dùng đó. Vì bạn đã thiết lập hệ thống của mình để người dùng thử nghiệm là đầu tiên, bạn có thể sử dụng giá trị chỉ mục đầu tiên của vòng lặp để in thêm đầu ra dài dòng.

>>>

>>> def even_items(iterable):
...     """Return items from ``iterable`` when their index is even."""
...     values = []
...     for index, value in enumerate(iterable, start=1):
...         if not index % 2:
...             values.append(value)
...     return values
...

Bạn cũng có thể kết hợp các hoạt động toán học với các điều kiện cho số lượng hoặc chỉ mục. Chẳng hạn, bạn có thể cần trả lại các mục từ một điều có thể, nhưng chỉ khi chúng có chỉ số chẵn. Bạn có thể làm điều này bằng cách sử dụng

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3:

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
17 có một đối số, được gọi là
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
18, đó phải là một loại đối tượng mà Python có thể lặp lại. Đầu tiên,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1 được khởi tạo là một danh sách trống. Sau đó, bạn tạo một vòng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2 trên
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
18 với
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 và đặt
>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
6.

Trong vòng lặp

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2, bạn kiểm tra xem phần còn lại của việc chia
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
0 cho
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
26 là bằng không. Nếu có, thì bạn nối các mặt hàng vào
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1. Cuối cùng, bạn trở lại
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1.

>>>

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
0

Bạn có thể làm cho mã Pythonic hơn bằng cách sử dụng danh sách hiểu để làm điều tương tự trong một dòng mà không khởi tạo danh sách trống:

Trong mã ví dụ này,

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
17 sử dụng khả năng hiểu danh sách thay vì vòng lặp
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2 để trích xuất mọi mục từ danh sách có chỉ mục là một số chẵn.

>>>

Bạn có thể xác minh rằng
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
17 hoạt động như mong đợi bằng cách lấy các mục được chỉ số từ một loạt các số nguyên từ
>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
8 đến
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
33. Kết quả sẽ là
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
34:

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
1

>>>

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
2

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
38 là một chuỗi có tất cả hai mươi sáu chữ cái của bảng chữ cái ASCII. Gọi
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
17 và vượt qua
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
38 trả về một danh sách các chữ cái xen kẽ từ bảng chữ cái.

Chuỗi Python là các chuỗi, có thể được sử dụng trong các vòng lặp cũng như trong lập chỉ mục và cắt số nguyên. Vì vậy, trong trường hợp chuỗi, bạn có thể sử dụng dấu ngoặc vuông để đạt được chức năng tương tự như

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
17 hiệu quả hơn:

>>>

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
3

Sử dụng cắt chuỗi ở đây, bạn cung cấp chỉ mục bắt đầu

>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
8, tương ứng với phần tử thứ hai. Không có chỉ số kết thúc sau khi đại tràng đầu tiên, vì vậy Python đi đến cuối chuỗi. Sau đó, bạn thêm đại tràng thứ hai theo sau là
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
26 để Python sẽ lấy mọi yếu tố khác.

Tuy nhiên, như bạn đã thấy trước đó, máy phát điện và máy lặp có thể được lập chỉ mục hoặc cắt lát, vì vậy bạn vẫn sẽ thấy

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 hữu ích. Để tiếp tục ví dụ trước, bạn có thể tạo một hàm trình tạo mang lại các chữ cái của bảng chữ cái theo yêu cầu:

>>>

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
4

Trong ví dụ này, bạn xác định

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
45, một hàm trình tạo mang lại các chữ cái của bảng chữ cái từng người một khi hàm được sử dụng trong một vòng lặp. Các chức năng của Python, cho dù là máy phát điện hoặc các chức năng thông thường, có thể được truy cập bằng cách lập chỉ mục khung vuông. Bạn thử điều này trên dòng thứ hai, và nó tăng
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
46.

Tuy nhiên, bạn có thể sử dụng các hàm của máy phát trong các vòng lặp và bạn làm như vậy trên dòng cuối cùng bằng cách chuyển

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
45 đến
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
17. Bạn có thể thấy rằng kết quả giống như hai ví dụ trước.

Hiểu Python >>> index = 0 >>> for value in values: ... print(index, value) ... 0 a 0 b 0 c 3

Trong một vài phần cuối cùng, bạn đã thấy các ví dụ về thời điểm và cách sử dụng

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 cho lợi thế của bạn. Bây giờ bạn đã có một xử lý các khía cạnh thực tế của
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3, bạn có thể tìm hiểu thêm về cách thức hoạt động của chức năng.

Để hiểu rõ hơn về cách thức hoạt động của

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3, bạn có thể triển khai phiên bản của riêng mình với Python. Phiên bản
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 của bạn có hai yêu cầu. Nó nên:

  1. Chấp nhận giá trị số lượng và giá trị khởi động là đối số
  2. Gửi lại một tuple với giá trị đếm hiện tại và mục được liên kết từ có thể điều chỉnh được

Một cách để viết một chức năng Gặp gỡ các thông số kỹ thuật này được đưa ra trong tài liệu Python:

>>>

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
5

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
54 có hai đối số,
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
55 và
>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
4. Giá trị mặc định của
>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
4 là
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
6. Bên trong định nghĩa hàm, bạn khởi tạo
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
59 là giá trị của
>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
4 và chạy vòng lặp
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2 trên
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
55.

Đối với mỗi

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
63 trong
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
55, bạn
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
65 kiểm soát trở lại vị trí gọi và gửi lại các giá trị hiện tại của
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
59 và
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
63. Cuối cùng, bạn tăng
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
59 để sẵn sàng cho lần lặp tiếp theo. Bạn có thể thấy
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
54 hoạt động ở đây:

>>>

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
6

Đầu tiên, bạn tạo một danh sách bốn mùa để làm việc. Tiếp theo, bạn cho thấy rằng việc gọi

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
54 với
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
71 là
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
55 tạo ra một đối tượng máy phát. Điều này là do bạn sử dụng từ khóa
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
65 để gửi lại giá trị cho người gọi.

Cuối cùng, bạn tạo hai danh sách từ

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
54, một trong đó giá trị bắt đầu được để lại là mặc định,
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
6 và một trong đó
>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
4 được thay đổi thành
>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
8. Trong cả hai trường hợp, bạn kết thúc với một danh sách các bộ dữ liệu trong đó phần tử đầu tiên của mỗi tuple là số lượng và phần tử thứ hai là giá trị từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
71.

Mặc dù bạn có thể thực hiện một hàm tương đương cho

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 chỉ trong một vài dòng mã python, mã thực tế cho
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 được viết bằng C. Điều này có nghĩa là nó siêu nhanh và hiệu quả.

Giải nén các đối số với >>> index = 0 >>> for value in values: ... print(index, value) ... 0 a 0 b 0 c 3

Khi bạn sử dụng

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 trong vòng lặp
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2, bạn bảo Python sử dụng hai biến, một cho số đếm và một cho chính giá trị. Bạn có thể làm điều này bằng cách sử dụng khái niệm Python có tên là đối số giải nén.argument unpacking.

Đối số Giải nén là ý tưởng rằng một tuple có thể được chia thành một số biến tùy thuộc vào độ dài của chuỗi. Chẳng hạn, bạn có thể giải nén hai phần tử thành hai biến:

>>>

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
7

Đầu tiên, bạn tạo một tuple với hai yếu tố,

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
33 và
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
2. Sau đó, bạn giải nén bộ điều đó thành
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
86 và
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
87, mỗi cái được gán một trong các giá trị từ tuple.

Khi bạn gọi

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 và truyền một chuỗi các giá trị, Python trả về một trình lặp. Khi bạn hỏi trình lặp lại giá trị tiếp theo của nó, nó sẽ mang lại một bộ phận với hai yếu tố. Yếu tố đầu tiên của tuple là đếm và phần tử thứ hai là giá trị từ chuỗi bạn đã vượt qua:iterator. When you ask the iterator for its next value, it yields a tuple with two elements. The first element of the tuple is the count, and the second element is the value from the sequence that you passed:

>>>

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
8

Trong ví dụ này, bạn tạo một danh sách có tên

>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1 với hai phần tử,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
2 và
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
3. Sau đó, bạn chuyển
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1 đến
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 và gán giá trị trả về cho
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
94. Khi bạn in
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
94, bạn có thể thấy rằng đó là một thể hiện của
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 với một địa chỉ bộ nhớ cụ thể.

Sau đó, bạn sử dụng Python, tích hợp

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
97 để có được giá trị tiếp theo từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
94. Giá trị đầu tiên mà
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
94 trả về là một tuple với số lượng
>>> for count, value in enumerate(values):
...     print(count, value)
...
0 a
1 b
2 c
6 và phần tử đầu tiên từ
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1, đó là
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
2.

Gọi

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
97 một lần nữa trên
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
94 mang lại một bộ khác, lần này với số lượng
>>> users = ["Test User", "Real User 1", "Real User 2"]
>>> for index, user in enumerate(users):
...     if index == 0:
...         print("Extra verbose output for:", user)
...     print(user)
...
Extra verbose output for: Test User
Real User 1
Real User 2
8 và phần tử thứ hai từ
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
1,
>>> for index in range(len(values)):
...     value = values[index]
...     print(index, value)
...
0 a
1 b
2 c
3. Cuối cùng, gọi
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
97 Một lần nữa tăng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
09 vì không có thêm giá trị nào được trả về từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
94.

Khi một ITEBLE được sử dụng trong vòng lặp

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2, Python sẽ tự động gọi
>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
97 khi bắt đầu mỗi lần lặp cho đến khi
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
09 được nâng lên. Python gán giá trị mà nó truy xuất từ ​​biến có thể lặp lại cho biến vòng lặp.

Nếu một ITEBER trả về một tuple, thì bạn có thể sử dụng đối số giải nén để gán các phần tử của tuple cho nhiều biến. Đây là những gì bạn đã làm trước đó trong hướng dẫn này bằng cách sử dụng hai biến vòng lặp.

Một lần khác, bạn có thể đã thấy đối số giải nén với vòng lặp

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2 là với
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
15 tích hợp, cho phép bạn lặp lại qua hai hoặc nhiều chuỗi cùng một lúc. Trên mỗi lần lặp,
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
15 trả về một bộ thu thu thập các yếu tố từ tất cả các chuỗi đã được thông qua:

>>>

>>> index = 0

>>> for value in values:
...     print(index, value)
...     index += 1
...
0 a
1 b
2 c
9

Bằng cách sử dụng

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
15, bạn có thể lặp lại thông qua
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
18,
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
19 và
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
20 cùng một lúc. Trong vòng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2, bạn chỉ định phần tử từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
18 đến
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
23, từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
19 đến
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
25 và từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
20 đến
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
27. Sau đó, bạn in ba giá trị.

Bạn có thể kết hợp

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
15 và
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 bằng cách sử dụng giải nén đối số lồng nhau:nested argument unpacking:

>>>

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
0

Bằng cách sử dụng

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
15, bạn có thể lặp lại thông qua
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
18,
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
19 và
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
20 cùng một lúc. Trong vòng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2, bạn chỉ định phần tử từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
18 đến
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
23, từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
19 đến
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
25 và từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
20 đến
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
27. Sau đó, bạn in ba giá trị.

Bạn có thể kết hợp

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
15 và
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 bằng cách sử dụng giải nén đối số lồng nhau:

>>>

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
1

Bằng cách sử dụng

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
15, bạn có thể lặp lại thông qua
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
18,
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
19 và
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
20 cùng một lúc. Trong vòng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2, bạn chỉ định phần tử từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
18 đến
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
23, từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
19 đến
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
25 và từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
20 đến
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
27. Sau đó, bạn in ba giá trị.

Bạn có thể kết hợp >>> index = 0 >>> for value in values: ... print(index, value) ... 0 a 0 b 0 c 15 và >>> index = 0 >>> for value in values: ... print(index, value) ... 0 a 0 b 0 c 3 bằng cách sử dụng giải nén đối số lồng nhau:

Trong vòng

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2 trong ví dụ này, bạn làm tổ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
15 bên trong
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3. Điều này có nghĩa là mỗi lần vòng lặp
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2 lặp lại,
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 mang lại một tuple với giá trị thứ nhất là số đếm và giá trị thứ hai là một tuple khác chứa các phần tử từ các đối số đến
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
15. Để giải nén cấu trúc lồng nhau, bạn cần thêm dấu ngoặc đơn để nắm bắt các yếu tố từ bộ phận lồng nhau của các phần tử từ
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
15.

Có nhiều cách khác để mô phỏng hành vi của

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 kết hợp với
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
15. Một phương thức sử dụng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
39, trả về các số nguyên liên tiếp theo mặc định, bắt đầu từ 0. Bạn có thể thay đổi ví dụ trước để sử dụng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
39:

  • Sử dụng
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    39 trong ví dụ này cho phép bạn sử dụng một cuộc gọi
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    15 duy nhất để tạo số lượng cũng như các biến vòng lặp mà không cần giải nén đối số.
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    3
    in your
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    2 loops
  • Sự kết luậnreal-world examples
  • Python sườn
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    3 cho phép bạn viết các vòng lặp pythonic
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    2 khi bạn cần một số đếm và giá trị từ một điều đáng tin cậy. Ưu điểm lớn của
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    3 là nó trả về một bộ đếm với bộ đếm và giá trị, vì vậy bạn không phải tự mình tăng số quầy. Nó cũng cung cấp cho bạn tùy chọn để thay đổi giá trị bắt đầu cho bộ đếm.argument unpacking
  • Trong hướng dẫn này, bạn đã học được cách:equivalent function to
    >>> index = 0
    
    >>> for value in values:
    ...     print(index, value)
    ...
    0 a
    0 b
    0 c
    
    3

Sử dụng Python từ

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 trong các vòng
>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
2 của bạn

Áp dụng

>>> index = 0

>>> for value in values:
...     print(index, value)
...
0 a
0 b
0 c
3 trong một vài ví dụ trong thế giới thực This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Looping With Python enumerate()

Bạn có thể liệt kê một danh sách trong Python không?

Tái tạo () trong python liệt kê phương thức () thêm một bộ đếm cho một điều khác nhau và trả lại nó trong một hình thức liệt kê đối tượng. Đối tượng được liệt kê này sau đó có thể được sử dụng trực tiếp cho các vòng lặp hoặc được chuyển đổi thành danh sách các bộ dữ liệu bằng phương thức Danh sách ().This enumerated object can then be used directly for loops or converted into a list of tuples using the list() method.

Nó có nghĩa là gì để liệt kê một danh sách trong Python?

Việc liệt kê làm gì trong Python?Hàm liệt kê trong Python chuyển đổi một đối tượng thu thập dữ liệu thành một đối tượng liệt kê.Việc liệt kê trả về một đối tượng chứa một bộ đếm làm khóa cho mỗi giá trị trong một đối tượng, làm cho các mục trong bộ sưu tập dễ dàng truy cập hơn.converts a data collection object into an enumerate object. Enumerate returns an object that contains a counter as a key for each value within an object, making items within the collection easier to access.

Hàm liệt kê () trong Python là gì?

Python liệt kê hàm () hàm liệt kê () hàm lấy một bộ sưu tập (ví dụ: một tuple) và trả về nó như một đối tượng liệt kê.Hàm liệt kê () thêm một bộ đếm làm khóa của đối tượng liệt kê.takes a collection (e.g. a tuple) and returns it as an enumerate object. The enumerate() function adds a counter as the key of the enumerate object.

Bạn có thể sử dụng liệt kê trong danh sách không?

Tái tạo có thể được sử dụng để lặp qua một danh sách, tuple, từ điển và chuỗi.Tái tạo rất hữu ích khi bạn muốn chỉ mục và giá trị khi lặp qua danh sách, tuple, từ điển, v.v.. Enumerate is very helpful when you want the index and the value when looping over list, tuple, dictionary, etc.