/ / Hàm enumerate () trong Python làm gì và bạn sử dụng nó như thế nào?

Hàm enumerate () trong Python làm gì và bạn sử dụng nó như thế nào?

pexels pixabay 161154

Python hỗ trợ nhiều đối tượng có thể lặp lại: danh sách, bộ giá trị và chuỗi chỉ là một số ít. Vòng lặp for của Python đủ linh hoạt để xử lý các đối tượng này một cách dễ dàng. Đặc biệt, nó giúp bạn không phải tự mình xử lý chỉ mục số của từng mục nhập.

Nhưng đôi khi, bạn sẽ muốn làm việc với một chỉ mục, để đếm hoặc lọc các mục trong một bộ sưu tập chẳng hạn. Tìm hiểu cách bạn có thể sử dụng hàm liệt kê trong Python để lặp qua một chuỗi trong khi theo dõi cả chỉ mục và phần tử.

LÀM VIDEO TRONG NGÀY

Lặp lại mà không cần liệt kê ()

Hãy xem xét danh sách Python sau đây.

my_fruits = ["apples", "pears", "bananas"]

Giả sử bạn muốn theo dõi số lượng của từng phần tử trong danh sách. Bạn có thể sử dụng vòng lặp for với phạm vi() chức năng như thế này.

count = 0

for fruit in range(len(my_fruits)):
print(count, my_fruits[count])
count += 1

Trong khi điều này hoạt động, nó có một số thiếu sót:

  • Bạn phải theo dõi số đếm bên ngoài vòng lặp.
  • Bạn phải tăng số lượng trong mỗi lần lặp lại.
  • Bạn phải tính độ dài của vòng lặp.
  • range (len ()) chỉ hoạt động với các đối tượng đếm được, có thể lập chỉ mục.

Một giải pháp tốt hơn tồn tại: hàm enumerate ().

Cách hoạt động của enumerate () trong Python

Con trăn liệt kê () hàm nhận một bộ sưu tập dữ liệu và trả về một đối tượng liệt kê. Đối tượng liệt kê chứa một bộ đếm làm khóa cho mỗi mục mà đối tượng chứa. Các liệt kê () chức năng làm như vậy bằng cách gán cho mỗi mục một số lượng. Số đếm này tương ứng với số lần lặp lại mà hàm đã hoàn thành để đạt đến giá trị đó.

Bộ đếm này giúp bạn dễ dàng truy cập các mục trong bộ sưu tập hoặc thậm chí thay đổi bộ sưu tập nếu có thể.

Với liệt kê (), bạn không phải theo dõi độ dài của vòng lặp hoặc số lần lặp lại. Bạn cũng có thể tránh truy cập rõ ràng vào giá trị bằng cách sử dụng toán tử chỉ mục, như trái cây[count]. Chức năng liệt kê tự động xử lý tất cả các tính năng này.

Cú pháp của Python enumerate ()

Dưới đây là cú pháp chung cho hàm enumerate ().

enumerate(iterable, start=0)

enumerate () nhận hai đối số:

  1. có thể lặp lại: một chuỗi hoặc bộ sưu tập dữ liệu mà Python có thể lặp lại. Ví dụ: một danh sách hoặc bộ dữ liệu.
  2. start: chỉ số mà hàm liệt kê sẽ bắt đầu đếm từ đó.

Cách thực hiện enumerate ()

Để hiểu làm thế nào liệt kê () hoạt động, hãy xem nó thực sự được triển khai như thế nào.

def enumerate(sequence, start=0):
n = start

for elem in sequence:
yield n, elem
n += 1

Hàm này, bạn có thể tìm thấy trong tài liệu liệt kê Python, nhận một chuỗi và một đối số bắt đầu được mặc định là 0.

Sau đó, hàm khởi tạo biến n thành biến bắt đầu. Điều này giúp theo dõi số lần lặp lại.

Trong vòng lặp for theo sau cho mỗi phần tử trong chuỗi,

  • năng suất tạm dừng việc thực thi vòng lặp.
  • Nó cũng trả về số đếm hiện tại (n) và giá trị (elem).
  • Khi vòng lặp tiếp tục, nó tăng lên n.

Giá trị trả về là một đối tượng của các cặp khóa-giá trị.

Nếu bạn gọi liệt kê () và chuyển cho nó danh sách các loại quả, đây sẽ là giá trị đầu ra.

my_fruits = ["apples", "pears", "bananas"]
enumerate_object = enumerate(my_fruits)
print(list(enumerate_object))

Liệt kê với một chỉ số khởi đầu khác

Trong ví dụ trên, chúng tôi không chỉ định chỉ mục bắt đầu. Ví dụ dưới đây cho bạn thấy cách bạn có thể đặt chỉ mục bắt đầu thành một số tùy chọn của bạn.

Để bắt đầu từ 10 tuổi, hãy làm như sau.

enumerate_object = enumerate(my_fruits, 10)
print(list(enumerate_object))

Ví dụ trong Python enumerate ()

Dưới đây là một số ví dụ cho thấy cách bạn có thể sử dụng liệt kê () bằng Python.

Liệt kê một chuỗi Python

Trong ví dụ này, bạn sẽ sử dụng kiểu liệt kê để lấy ký tự ở chỉ mục 5:

my_string = "smartreviewaz"

for count, value in enumerate(my_string):
if count == 5:
print (value)

Liệt kê một Tuple Python

Bạn cũng có thể dùng liệt kê () để lặp qua một tuple Python. Trong ví dụ này, chương trình in một tiêu đề trong lần lặp đầu tiên, trước khi hiển thị các mục.

my_fruits_tuple = ("apples", "pears", "bananas")

for index, value in enumerate(my_fruits_tuple):
if (index == 0):
print("Fruits:")

print(value)

/*
Fruits:
apples
pears
bananas
*/

Liệt kê một danh sách Python

Trong ví dụ dưới đây, bạn đang sử dụng liệt kê để giảm tất cả các số trong danh sách trên 10 x 2.

my_number_list = [10, 17, 15, 6]

for index, value in enumerate(my_number_list):
if (value > 10):
my_number_list[index] -= 2

print(my_number_list)

Sử dụng liệt kê để đếm số lần lặp lại của bạn

Python bao gồm liệt kê () như một chức năng được tích hợp sẵn. Bạn có thể sử dụng nó để lặp lại và đếm các mục trong một tập hợp có thể lặp lại như danh sách, tuple hoặc chuỗi. Nó có thể giúp bạn theo dõi chỉ số thực của từng phần tử, nhưng bạn cũng có thể chỉ định chỉ mục bắt đầu của riêng mình. Sử dụng nó như một sự thay thế cho phạm vi() chức năng nếu bạn đang làm việc với các đối tượng không đếm được và các đối tượng có thể lập chỉ mục.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *