Hướng dẫn enumerate in python

Hướng dẫn enumerate in python

Ví dụ về Python Enumerate

Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng enumerate trong Python để có một bộ đếm trong một vòng lặp và các trường hợp sử dụng lệnh enumerate trong lập trình với Python

Một vòng lặp for trong Python sử dụng phép lặp dựa trên tập hợp. Điều này có nghĩa là Python sẽ chỉ định mục tiếp theo từ biến iterable cho biến vòng lặp trên mỗi lần lặp như ví dụ dưới đây:

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

>>> for value in values:

...    print(value)

...

a

b

c

Trong ví dụ này, values là một danh sách với 3 giá trị a, b và c. Trong Python, danh sách là một loại đối tượng có thể lặp lại. Trong vòng lặp for, biến của vòng lặp là value. Trên mỗi lần lặp của vòng lặp, value sẽ được đặt thành mục tiếp theo từ chính values này.

Ưu điểm của việc lặp lại dựa trên tập hợp là nó giúp tránh lỗi từng phần một.

Bây giờ, nếu bạn muốn  in chỉ mục của mục trong danh sách ra màn hình trên mỗi lần lặp. Điều bạn cần làm 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. Tuy vậy, bạn có thể gặp một số lỗi như quên cập nhập giá trị mỗi lần lặp hay bị hạn chế trong quá trình lặp.

Python enumerate () cho phép bạn tránh tất cả những vấn đề này. Đây là một chức năng được tích hợp sẵn trong các phiên bản Python.

>>> Xem thêm: Fix bug trong Python- 5 công cụ sửa lỗi cần thiết cho Lập trình viên Python

Cách sử dụng Python enumerate ()

Bạn có thể sử dụng enumerate () trong vòng lặp theo cách gần giống như cách bạn sử dụng đối tượng có thể lặp ban đầu. Thay vì đưa trực tiếp các biến vào sau in trong vòng lặp for, bạn có thể đặt nó trong ngoặc đơn của lệnh enumerate. Ví dụ như sau:

>>> for count, value in enumerate(values):

...    print(count, value)

...

0 a

1 b

2 c

Khi sử dụng enumerate (), hàm cung cấp cho bạn hai biến vòng lặp như sau:

- Số lần lặp hiện tại

- Giá trị chỉ mục ở lần lặp hiện tại

Cũng giống như một vòng lặp for thông thường, các biến ở vòng lặp có thể được đặt tên theo bất kỳ tên nào mà bạn muốn. Trong ví dụ trên, count và value đã được đặt tên, nhưng bạn có thể đặt chúng theo bất kỳ tên nào mà bạn muốn.

Với enumerate, bạn không cần phải nhớ truy cập mục từ chỉ mục trong iterable, và bạn không cần phải nhớ việc tăng chỉ mục ở cuối vòng lặp. Mọi thứ đều được tự động và vì thế tránh việc làm sai sót khi làm thủ công.

Python enumerate có một đối số bổ sung mà bạn có thể sử dụng để kiểm soát giá trị của lần đếm. Theo mặc định, giá trị bắt đầu là 0 vì kiểu chuỗi trong Python được lập chỉ mục bắt đầu bằng 0. Khi muốn truy xuất phần tử đầu tiên của danh sách, bạn sử dụng chỉ mục 0 như sau:

>>> print(values[0])

a

Bạn có thể thấy trong ví dụ này rằng việc truy cập values bằng chỉ mục 0 cho phần tử đầu tiên. Tuy nhiên, đôi khi bạn không muốn đếm từ 0 mà thay vào đó là các số đếm tự nhiên cho người dùng. Trong trường hợp này, bạn có thể sử dụng start đối số for enumerate()để 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

Trong ví dụ này, start =1, count sẽ bắt đầu bằng giá trị là 1 ngay trong lần lặp đầu tiên.

>>> Tham khảo: Khóa học lập trình Python

Thực hành với Python enumerate ()

Trong phần trước bạn đã thấy cách sử dụng enumerate với lệnh start để tạo số đếm tự nhiên cho người dùng. enumerate cũng được sử dụng tương tự trong cơ sở mã của Python. 

Sử dụng câu lệnh điều kiện để xử lý các mục có thể là kỹ thuật rất hiệu quả. Đô 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, ví dụ như sau:

>>> 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

Kết luận: Hàm enumerate của Pythonlà một hàm mạnh mẽ và hữu ích với lập trình viên. Bạn có thể lập trình nhanh, hiệu quả và ít sai sót hơn khi sử dụng hàm enumerate trong lập trình. Hy vọng, qua bài viết trên, bạn đã biết cách sử dụng và thực hành hàm này trong chương trình của mình. Muốn nhanh chóng làm quen với Python và các ngôn ngữ lập trình khác, đừng quên tham khảo thêm các khóa học lập trình để bổ sung kiến thức bạn nhé!

Nguồn tham khảo: realpython

Ví dụ về Python Enumerate

Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng enumerate trong Python để có một bộ đếm trong một vòng lặp và các trường hợp sử dụng lệnh enumerate trong lập trình với Python

Một vòng lặp for trong Python sử dụng phép lặp dựa trên tập hợp. Điều này có nghĩa là Python sẽ chỉ định mục tiếp theo từ biến iterable cho biến vòng lặp trên mỗi lần lặp như ví dụ dưới đây:

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

>>> for value in values:

...    print(value)

...

a

b

c

Trong ví dụ này, values là một danh sách với 3 giá trị a, b và c. Trong Python, danh sách là một loại đối tượng có thể lặp lại. Trong vòng lặp for, biến của vòng lặp là value. Trên mỗi lần lặp của vòng lặp, value sẽ được đặt thành mục tiếp theo từ chính values này.

Ưu điểm của việc lặp lại dựa trên tập hợp là nó giúp tránh lỗi từng phần một.

Bây giờ, nếu bạn muốn  in chỉ mục của mục trong danh sách ra màn hình trên mỗi lần lặp. Điều bạn cần làm 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. Tuy vậy, bạn có thể gặp một số lỗi như quên cập nhập giá trị mỗi lần lặp hay bị hạn chế trong quá trình lặp.

Python enumerate () cho phép bạn tránh tất cả những vấn đề này. Đây là một chức năng được tích hợp sẵn trong các phiên bản Python.

>>> Xem thêm: Fix bug trong Python- 5 công cụ sửa lỗi cần thiết cho Lập trình viên Python

Cách sử dụng Python enumerate ()

Bạn có thể sử dụng enumerate () trong vòng lặp theo cách gần giống như cách bạn sử dụng đối tượng có thể lặp ban đầu. Thay vì đưa trực tiếp các biến vào sau in trong vòng lặp for, bạn có thể đặt nó trong ngoặc đơn của lệnh enumerate. Ví dụ như sau:

>>> for count, value in enumerate(values):

...    print(count, value)

...

0 a

1 b

2 c

Khi sử dụng enumerate (), hàm cung cấp cho bạn hai biến vòng lặp như sau:

- Số lần lặp hiện tại

- Giá trị chỉ mục ở lần lặp hiện tại

Cũng giống như một vòng lặp for thông thường, các biến ở vòng lặp có thể được đặt tên theo bất kỳ tên nào mà bạn muốn. Trong ví dụ trên, count và value đã được đặt tên, nhưng bạn có thể đặt chúng theo bất kỳ tên nào mà bạn muốn.

Với enumerate, bạn không cần phải nhớ truy cập mục từ chỉ mục trong iterable, và bạn không cần phải nhớ việc tăng chỉ mục ở cuối vòng lặp. Mọi thứ đều được tự động và vì thế tránh việc làm sai sót khi làm thủ công.

Python enumerate có một đối số bổ sung mà bạn có thể sử dụng để kiểm soát giá trị của lần đếm. Theo mặc định, giá trị bắt đầu là 0 vì kiểu chuỗi trong Python được lập chỉ mục bắt đầu bằng 0. Khi muốn truy xuất phần tử đầu tiên của danh sách, bạn sử dụng chỉ mục 0 như sau:

>>> print(values[0])

a

Bạn có thể thấy trong ví dụ này rằng việc truy cập values bằng chỉ mục 0 cho phần tử đầu tiên. Tuy nhiên, đôi khi bạn không muốn đếm từ 0 mà thay vào đó là các số đếm tự nhiên cho người dùng. Trong trường hợp này, bạn có thể sử dụng start đối số for enumerate()để 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

Trong ví dụ này, start =1, count sẽ bắt đầu bằng giá trị là 1 ngay trong lần lặp đầu tiên.

>>> Tham khảo: Khóa học lập trình Python

Thực hành với Python enumerate ()

Trong phần trước bạn đã thấy cách sử dụng enumerate với lệnh start để tạo số đếm tự nhiên cho người dùng. enumerate cũng được sử dụng tương tự trong cơ sở mã của Python. 

Sử dụng câu lệnh điều kiện để xử lý các mục có thể là kỹ thuật rất hiệu quả. Đô 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, ví dụ như sau:

>>> 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

Kết luận: Hàm enumerate của Pythonlà một hàm mạnh mẽ và hữu ích với lập trình viên. Bạn có thể lập trình nhanh, hiệu quả và ít sai sót hơn khi sử dụng hàm enumerate trong lập trình. Hy vọng, qua bài viết trên, bạn đã biết cách sử dụng và thực hành hàm này trong chương trình của mình. Muốn nhanh chóng làm quen với Python và các ngôn ngữ lập trình khác, đừng quên tham khảo thêm các khóa học lập trình để bổ sung kiến thức bạn nhé!

Nguồn tham khảo: realpython