Vòng lặp đếm trong Python

Vòng lặp với biến đếm/chỉ số - một tác phẩm kinh điển trong Khoa học Máy tính. Thông thường, bạn sẽ xác định rõ ràng một biến/chỉ mục bộ đếm và tăng nó theo cách thủ công trên mỗi vòng lặp hoặc bạn sẽ sử dụng một số loại đường cú pháp để tránh quá trình này thông qua các vòng lặp for nâng cao

Cả hai đoạn này đều dẫn đến cùng một đầu ra

Element Index: 0, Element: Looping
Element Index: 1, Element: with
Element Index: 2, Element: counters
Element Index: 3, Element: is
Element Index: 4, Element: a
Element Index: 5, Element: classic!

Do mức độ phổ biến của vòng lặp như thế này trong công việc hàng ngày - hàm enumerate[] đã được tích hợp vào không gian tên Python. Bạn có thể, không có bất kỳ phụ thuộc bổ sung nào, lặp qua một lần lặp trong Python, với biến/chỉ mục bộ đếm tự động với cú pháp đơn giản như

for idx, element in enumerate[some_list]:
     print[idx, element]

Ghi chú. Thông thường, nhưng không cần thiết, quy ước đặt tên chỉ mục là idx nếu không có nhãn nào khác được áp dụng, vì

for idx, element in enumerate[some_list]:
     print[idx, element]
0 là một từ khóa dành riêng. Thông thường, dựa trên khả năng lặp lại mà bạn đang làm việc, có thể gán các tên có ý nghĩa hơn, chẳng hạn như.
for idx, element in enumerate[some_list]:
     print[idx, element]
1

Đoạn mã này dẫn đến

0 Looping
1 with
2 counters
3 is
4 a
5 classic!

Hãy đi sâu vào chức năng và khám phá cách thức hoạt động của nó. Đó là một cách cổ điển và phổ biến - và theo kiểu Python thực sự, nó đơn giản hóa một thao tác phổ biến, dư thừa và cải thiện khả năng đọc mã của bạn

Hàm enumerate[] trong Python

Hàm enumerate[] chấp nhận một bộ sưu tập có thể lặp lại [chẳng hạn như bộ, danh sách hoặc chuỗi] và trả về một đối tượng

for idx, element in enumerate[some_list]:
     print[idx, element]
3, bao gồm một bộ khóa và bộ giá trị, trong đó các khóa tương ứng với một biến bộ đếm [bắt đầu từ 0] và

Ghi chú. Đối tượng

for idx, element in enumerate[some_list]:
     print[idx, element]
3, chính nó, có thể lặp lại. Bạn có thể sử dụng cú pháp for tiêu chuẩn, giải nén các khóa và giá trị của đối tượng
for idx, element in enumerate[some_list]:
     print[idx, element]
3

Sử dụng cú pháp for tiêu chuẩn của Python, chúng ta có thể giải nén các khóa và giá trị từ đối tượng này và kiểm tra các loại của chúng

Các loại dữ liệu của các giá trị [các thành phần từ bộ sưu tập ban đầu] được giữ lại, vì vậy ngay cả khi bạn chuyển các loại dữ liệu tùy chỉnh, miễn là chúng là một bộ sưu tập có thể lặp lại hợp lệ - chúng sẽ chỉ được chú thích bằng một biến bộ đếm. Nếu bạn thu thập đối tượng vào một danh sách, cấu trúc của nó sẽ trở nên rất rõ ràng

Nó chỉ là một tập hợp các bộ dữ liệu với mỗi bộ có hai phần tử - một biến đếm, bắt đầu từ 0 và mỗi phần tử của bộ lặp ban đầu được ánh xạ tới các chỉ số

Bạn có thể đặt một đối số

for idx, element in enumerate[some_list]:
     print[idx, element]
8 tùy chọn, biểu thị không phải chỉ mục bắt đầu trong lần lặp, mà biểu thị giá trị bắt đầu cho bộ đếm/chỉ mục đầu tiên mà hàm sẽ tạo. Chẳng hạn, giả sử chúng tôi muốn bắt đầu từ
for idx, element in enumerate[some_list]:
     print[idx, element]
9 thay vì
0 Looping
1 with
2 counters
3 is
4 a
5 classic!
0

Lặp qua Iterable với enumerate[]

Đã nói tất cả những điều đó - việc lặp qua một đối tượng

for idx, element in enumerate[some_list]:
     print[idx, element]
3 trông giống như việc lặp qua các lần lặp khác. Vòng lặp for có ích ở đây vì bạn có thể gán các biến tham chiếu cho các giá trị bộ dữ liệu được trả về. Ngoài ra, không cần tham chiếu đối tượng một cách rõ ràng, vì nó rất hiếm khi được sử dụng bên ngoài một vòng lặp nên giá trị trả về thường được sử dụng trực tiếp trong chính vòng lặp đó

Kết quả này trong

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

0, Looping
1, with
2, counters
3, is
4, a
5, classic!

Nếu bạn muốn đọc thêm về chuỗi f và định dạng đầu ra trong Python, hãy đọc Hướng dẫn định dạng chuỗi bằng chuỗi f của Python 3 của chúng tôi

Chú thích từng phần tử trong một lần lặp - hay đúng hơn là tăng bộ đếm và trả về nó, trong khi truy cập các phần tử của lần lặp cũng dễ dàng như vậy

Điều đáng chú ý là không có gì đặc biệt thực sự xảy ra trong hàm enumerate[]. Nó thực sự tương đương về mặt chức năng với vòng lặp ban đầu mà chúng ta đã viết, với một biến đếm rõ ràng được trả về cùng với một phần tử. Nếu bạn xem ghi chú trong tệp , kết quả của hàm có chức năng tương đương với

def enumerate[sequence, start=0]:
    n = start
    for elem in sequence:
        yield n, elem
        n += 1

Bạn có thể thấy rằng mã khá giống với cách triển khai đầu tiên mà chúng tôi đã xác định

Điểm mấu chốt ở đây là - từ khóa

0 Looping
1 with
2 counters
3 is
4 a
5 classic!
4 định nghĩa một trình tạo, có thể lặp lại. Bằng cách trả lại chỉ mục và chính phần tử đó, chúng ta đang tạo một đối tượng trình tạo có thể lặp lại, sau đó chúng ta có thể lặp lại và trích xuất các phần tử [và chỉ số của chúng] từ vòng lặp for

Nếu bạn muốn đọc thêm về cách sử dụng từ khóa

0 Looping
1 with
2 counters
3 is
4 a
5 classic!
4 tại đây, hãy đọc Hướng dẫn của chúng tôi để hiểu về từ khóa "yield" của Python

Nếu bạn sử dụng hàm

0 Looping
1 with
2 counters
3 is
4 a
5 classic!
7 thay vì hàm tích hợp sẵn, chúng ta sẽ có nhiều kết quả tương tự

some_list = ['Looping', 'with', 'counters', 'is', 'a', 'classic!']

for idx, element in our_enumerate[some_list]:
     print[f'{idx}, {element}']
        
obj = our_enumerate[some_list]
print[f'Object type: {obj}']

Kết quả này trong

0, Looping
1, with
2, counters
3, is
4, a
5, classic!
Object type: 

Sự khác biệt duy nhất là chúng ta chỉ có một đối tượng trình tạo chung, thay vì một tên lớp đẹp hơn

Phần kết luận

Cuối cùng, hàm enumerate[] chỉ đơn giản là đường cú pháp, bao hàm một cách thực hiện vòng lặp cực kỳ phổ biến và đơn giản

Trong hướng dẫn ngắn này, chúng ta đã xem xét hàm enumerate[] trong Python - phương thức tiện lợi được tích hợp sẵn để lặp lại một tập hợp và chú thích các phần tử bằng chỉ số

Vòng lặp đếm là gì?

Vòng lặp đếm hay vòng lặp điều khiển ngược là vòng lặp mà bạn biết trước nó sẽ lặp lại bao nhiêu lần . Trong số các ví dụ trước, hai ví dụ đầu tiên là các vòng lặp đếm. Bởi vì bạn biết trước chính xác số lần vòng lặp lặp lại, vòng lặp đếm có thể được thực hiện tùy thuộc vào giá trị của bộ đếm.

Vòng lặp Python nào là vòng lặp đếm?

Sử dụng hàm enumerate[] để đếm trong vòng lặp for , e. g. đối với chỉ mục, mục trong liệt kê [my_list]. . Hàm nhận một lần lặp và trả về một đối tượng chứa các bộ dữ liệu, trong đó phần tử đầu tiên là chỉ mục và phần tử thứ hai - mục.

3 loại vòng lặp trong Python là gì?

Loại vòng lặp .
cho vòng lặp. Vòng lặp for trong Python được sử dụng để lặp qua một chuỗi [danh sách, bộ dữ liệu, bộ, từ điển và chuỗi]. Sơ đồ. .
Trong khi lặp lại. Vòng lặp while được sử dụng để thực thi một tập hợp các câu lệnh miễn là một điều kiện là đúng. .
Vòng lặp lồng nhau. Nếu một vòng lặp tồn tại bên trong phần thân của một vòng lặp khác, nó được gọi là vòng lặp lồng nhau

Chủ Đề