Sử dụng hàm liệt kê trong Python để tạo vòng lặp với bộ đếm

Use Enumerate Function Python Create Loops With Counters



Bài viết này sẽ giải thích cách sử dụng hàm liệt kê có sẵn trong thư viện mô-đun chuẩn của Python. Chức năng liệt kê cho phép bạn chỉ định một chỉ số hoặc số lượng cho các phần tử trong bất kỳ đối tượng có thể lặp lại nào. Sau đó, bạn có thể triển khai logic hơn nữa trên chúng vì bạn sẽ có quyền truy cập vào cả giá trị và số lượng được ánh xạ tới nó.

Cú pháp và ví dụ cơ bản

Nếu bạn đã sử dụng vòng lặp for trong các ngôn ngữ lập trình khác, đặc biệt là ngôn ngữ C và các ngôn ngữ khác có cú pháp kiểu C, bạn có thể đã chỉ định một chỉ mục bắt đầu trong vòng lặp. Để tham khảo, đây là vòng lặp for trông như thế nào trong C và các ngôn ngữ khác có cú pháp tương tự:







(NStôi= 0;tôi< 10;tôi++)

{

printf ('%NS ',tôi);

}

Câu lệnh vòng lặp khởi tạo một biến có giá trị bằng 0, kiểm tra xem nó có nhỏ hơn ngưỡng hay không và tăng nó lên một số sau khi đánh giá logic bên trong khối vòng lặp (nếu điều kiện dừng được đáp ứng). Bằng cách này, bạn có thể sử dụng một chỉ mục và gán nó cho bất kỳ đối tượng nào được tham chiếu trong khối vòng lặp của bạn. Để so sánh, đây là vòng lặp for với cùng kết quả trông như thế nào trong Python:



tôitrong phạm vi(0, 10):

in (tôi)

Hàm phạm vi trong Python cho phép bạn chỉ định một chuỗi phạm vi số có bước mặc định là 1. Bạn có thể thay đổi giá trị bước bằng cách cung cấp đối số thứ ba. Đối số thứ hai trong hàm phạm vi được sử dụng để đặt ngưỡng cho điều kiện dừng. Cả hai mẫu mã đều tạo ra kết quả sau:



0

1

2

3

4

5

6

7

số 8

9

Các vòng lặp này hoạt động tốt nếu bạn chỉ muốn tạo một số chuỗi số và liên kết chúng với một số logic bên trong câu lệnh vòng lặp. Tuy nhiên, bạn có thể phải sử dụng một vòng lặp lồng nhau khác hoặc sử dụng hàm lợi nhuận trên bất kỳ loại có thể lặp lại nào để gán cho chúng một số loại số lượng có thể theo dõi. Phương thức liệt kê giúp dễ dàng gán chỉ mục cho các tệp lặp trong một câu lệnh, do đó loại bỏ nhu cầu chạy nhiều vòng lặp lồng nhau. Hãy xem mẫu mã này:





con số= ['số không', 'một', 'hai', 'số ba', 'bốn', 'năm']

enumerated_numbers= liệt kê(con số)

mục lục,bài báotrongenumerated_numbers:

in (mục lục,bài báo)

Câu lệnh đầu tiên xác định một biến mới được gọi là số và gán một biến có thể lặp lại (kiểu danh sách) cho nó. Câu lệnh thứ hai cho thấy cách sử dụng hàm liệt kê trong đó bạn cung cấp một đối số có thể lặp lại cho nó như một đối số bắt buộc. Câu lệnh thứ ba chuyển đổi biến enumerated_numbers thành một đối tượng kiểu danh sách. Theo mặc định, hàm liệt kê tạo ra một đối tượng kiểu liệt kê và không phải là một kiểu có thể lặp lại, vì vậy bạn phải chuyển đổi nó. Sau khi chạy mẫu mã được đề cập ở trên, bạn sẽ nhận được kết quả sau:

[(0, 'không'), (1, 'một'), (2, 'hai'), (3, 'ba'), (4, 'bốn'), (5, 'năm')]

Hàm liệt kê chỉ định số lượng cho mỗi phần tử trong một kiểu có thể lặp lại và tạo các bộ giá trị có các giá trị được ghép nối. Theo mặc định, số lượng bắt đầu từ số không.



Bây giờ bạn đã gán một số cho mỗi phần tử trong kiểu có thể lặp lại, bạn có thể dễ dàng lặp lại nó mà không cần viết các câu lệnh lồng nhau:

con số= ['số không', 'một', 'hai', 'số ba', 'bốn', 'năm']

enumerated_numbers= liệt kê(con số)

mục lục,bài báotrongenumerated_numbers:

in (mục lục,bài báo)

Mẫu mã được chỉ định ở trên sẽ tạo ra kết quả sau:

0 không

1 một

2 hai

3 ba

4 bốn

5 năm

Bạn có thể làm cho mã ngắn hơn bằng cách sử dụng hàm liệt kê nội dòng, như được hiển thị trong mẫu bên dưới:

con số= ['số không', 'một', 'hai', 'số ba', 'bốn', 'năm']

mục lục,bài báotrong liệt kê(con số):

in (mục lục,bài báo)

Sử dụng liệt kê với một chỉ mục bắt đầu khác

Hàm liệt kê nhận một đối số tùy chọn nơi bạn có thể chỉ định một chỉ mục bắt đầu. Theo mặc định, nó là 0, nhưng bạn có thể thay đổi nó bằng cách sử dụng đối số bắt đầu:

con số= ['một', 'hai', 'số ba', 'bốn', 'năm']

mục lục,bài báotrong liệt kê(con số,bắt đầu=1):

in (mục lục,bài báo)

Trong câu lệnh thứ hai, đối số start = 1 được sử dụng để thay đổi điểm bắt đầu. Sau khi chạy mẫu mã được chỉ định ở trên, bạn sẽ nhận được kết quả sau:

1 một

2 hai

3 ba

4 bốn

5 năm

Chỉ định chỉ mục với các bước

Trong phần đầu tiên của bài viết này, cú pháp cho vòng lặp for trong ngôn ngữ C được hiển thị nơi bạn có thể xác định các bước giữa mỗi số hoặc chỉ mục tiếp theo. Hàm liệt kê trong Python không có sẵn bất kỳ đối số nào như vậy nên bạn không thể chỉ định một bước giữa các số. Bạn thực sự có thể viết logic của riêng mình để triển khai các bước bên trong khối vòng lặp for được liệt kê. Tuy nhiên, có một cách để thực hiện các bước tùy chỉnh bằng cách viết mã tối thiểu. Ví dụ sau cho thấy việc triển khai các bước bằng cách sử dụng các hàm zip và phạm vi:

con số= ['số không', 'hai', 'bốn', 'sáu']

mục lục,bài báotrong zip(phạm vi(0, 7, 2),con số):

in (mục lục,bài báo)

Hàm zip cho phép bạn tạo các cặp bằng cách chọn các phần tử có cùng chỉ mục từ hai hoặc nhiều tệp lặp. Vì vậy, hàm zip ở đây chọn một phần tử từ hàm có thể lặp lại được trả về từ phạm vi (0, 7, 2) và một phần tử khác từ danh sách số và sau đó ghép nối cả hai thành một bộ. Kết quả cuối cùng là một triển khai giống hệt với hàm liệt kê nhưng với các bước tùy chỉnh được chỉ định làm đối số thứ ba trong hàm phạm vi (0, 7, 2) (2 trong trường hợp này). Sau khi chạy mẫu mã được chỉ định ở trên, bạn sẽ nhận được kết quả sau:

0 không

2 hai

4 bốn

6 sáu

Phần kết luận

Hàm liệt kê trong Python cho phép bạn viết mã ngắn gọn bằng cách gán một chuỗi số cho các phần tử trong một đối tượng có thể lặp lại. Điều này thực sự hữu ích nếu bạn muốn theo dõi chỉ mục của các mục bên trong một loại có thể lặp lại. Nếu bạn muốn liệt kê các loại có thể lặp lại với các bước tùy chỉnh, hãy sử dụng hàm zip được giải thích trong ví dụ cuối cùng.