Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Enumerate() trong Python


Khi sử dụng các iterator (bộ lặp), chúng ta cần theo dõi số lượng mục trong iterator. Điều này đạt được bằng một phương pháp tích hợp sẵn gọi là enumerate(). Phương thức enumerate() thêm bộ đếm vào iterable. Đối tượng trả về là một đối tượng enumerate. Cú pháp và tham số của nó được mô tả dưới đây.

enumerate(iterable, start=0)
iterable - một chuỗi, một iterator, hoặc các đối tượng hỗ trợ lặp lại
start – là vị trí trong iterator từ nơi bắt đầu đếm. Mặc định là 0.

Ví dụ

Trong ví dụ dưới đây, chúng ta lấy một dictionary và áp dụng enumerate cho nó. Trong kết quả, start mặc định là từ 0 và chúng ta có kết quả in ra bắt đầu với giá trị bộ đếm là 0. Chúng ta cũng có thể thay đổi giá trị start mặc định thành 5 và xem kết quả khác nhau dù số lượng đếm vẫn như nhau.

days = {'Mon', 'Tue', 'Wed', 'Thu'}
enum_days = enumerate(days)
print(type(enum_days))
# chuyển đổi thành list
print(list(enum_days))
# thay đổi bộ đếm mặc định thành 5
enum_days = enumerate(days, 5)
print(list(enum_days))

Kết quả

Chạy mã trên cho kết quả sau:

[(0, 'Tue'), (1, 'Thu'), (2, 'Mon'), (3, 'Wed')]
[(5, 'Tue'), (6, 'Thu'), (7, 'Mon'), (8, 'Wed')]

Sử dụng vòng lặp cho enumerate

Chúng ta cũng có thể sử dụng mã để lặp và in các phần tử của vòng lặp riêng biệt như trong mã dưới đây.

Ví dụ

days = {'Mon', 'Tue', 'Wed', 'Thu'}
enum_days = enumerate(days)
# enumerate sử dụng vòng lặp
for enum_days in enumerate(days):
    print(enum_days)
for count, enum_days in enumerate(days, 5):
    print(count, enum_days)

Kết quả

Chạy mã trên cho kết quả sau:

(0, 'Thu')
(1, 'Tue')
(2, 'Wed')
(3, 'Mon')
5 Thu
6 Tue
7 Wed
8 Mon