Khi bạn viết mã bằng Python, bạn có thể sử dụng enumerate()
chức năng và một for loop
để in ra từng giá trị của một lần lặp với bộ đếm.
Trong bài viết này, tôi sẽ hướng dẫn các bạn cách sử dụng Python’s enumerate()
chức năng với một for loop
và giải thích tại sao đó là một lựa chọn tốt hơn so với việc tạo bộ đếm gia tăng của riêng bạn.
Nhưng trước tiên, chúng ta hãy xem làm thế nào để thực hiện điều này mà không cần enumerate()
chức năng.
Làm thế nào để sử dụng một for loop
không có enumerate()
chức năng trong Python
Trong Python, một iterable là một đối tượng mà bạn có thể lặp đi lặp lại và trả về một giá trị tại một thời điểm. Ví dụ về iterables bao gồm danh sách, bộ dữ liệu và chuỗi.
Trong ví dụ này, chúng tôi có một danh sách tên con chó và một biến được gọi là count
.
dogs = ['Harley', 'Phantom', 'Lucky', 'Dingo']
count = 1
Chúng ta có thể sử dụng một for loop
để đi qua danh sách và in từng tên. Chúng tôi cũng sẽ tăng count
biến bằng 1 mỗi lần để theo dõi số lần chúng tôi đã lặp lại danh sách.
for name in dogs:
print(count, name)
count += 1
Đây là kết quả sẽ trông giống như được in ra màn hình:

Mặc dù cách tiếp cận này có hiệu quả nhưng nó có thể gây ra lỗi.
Một sai lầm phổ biến là quên tăng count
Biến đổi.
Nếu tôi thay đổi mã, thì đây sẽ là kết quả mới được in ra bảng điều khiển:
dogs = ['Harley', 'Phantom', 'Lucky', 'Dingo']
count = 1
for name in dogs:
print(count, name)

Bây giờ count
biến không còn theo dõi chính xác số lần chúng tôi đã lặp qua danh sách.
Thay vì tăng một count
biến mình, chúng ta có thể sử dụng enumerate()
chức năng với for loop
.
cái gì enumerate()
chức năng trong Python?
Python được tích hợp sẵn enumerate()
hàm nhận một đối số bắt đầu có thể lặp lại và tùy chọn.
enumerate(iterable, optional start argument)
Nếu bạn bỏ qua tùy chọn start
đối số, thì số đếm được đặt thành không.
Giá trị trả về của enumerate()
chức năng là một đối tượng.
Chức năng này theo dõi các lần lặp lại, do đó bạn không cần phải nhớ cập nhật count
Biến đổi.
Chúng ta có thể sử dụng enumerate()
chức năng với một for loop
để in ra các giá trị của một lần lặp với bộ đếm.
Làm thế nào để sử dụng một for loop
và enumerate()
chức năng trong Python
Trong ví dụ này, chúng tôi muốn in ra một danh sách chỉ đường đi từ Quảng trường Thời đại đến Trường Âm nhạc Juilliard ở Thành phố New York, New York.
Trước tiên chúng ta phải tạo danh sách các directions
:
directions = [
'Head north on Broadway toward W 48th St',
'Turn left onto W 58th St',
'Turn right onto 8th Ave',
'Turn left onto Broadway',
'Turn left onto Lincoln Center Plaza',
'Turn right onto Jaffe Dr',
'Turn left onto Broadway',
'Turn left onto W 65th St'
]
Sau đó trong for loop
chúng tôi tạo ra count
và direction
biến vòng lặp.
Các enumerate()
chức năng sẽ đưa vào directions
danh sách và start
tranh luận. Chúng tôi muốn bắt đầu đếm từ 1 thay vì mặc định là 0.
for count, direction in enumerate(directions, start=1):
Bên trong vòng lặp, chúng tôi sẽ in ra count
và direction
biến vòng lặp.
print(count, direction)
Đây là những gì trông giống như tất cả được đặt lại với nhau:
directions = [
'Head north on Broadway toward W 48th St',
'Turn left onto W 58th St',
'Turn right onto 8th Ave',
'Turn left onto Broadway',
'Turn left onto Lincoln Center Plaza',
'Turn right onto Jaffe Dr',
'Turn left onto Broadway',
'Turn left onto W 65th St'
]
for count, direction in enumerate(directions, start=1):
print(count, direction)
Đây là kết quả trông như thế nào trong bảng điều khiển:

Như bạn có thể thấy count
biến được cập nhật tự động với enumerate()
chức năng.
Điều này loại bỏ khả năng xảy ra lỗi nếu chúng ta quên tăng count
Biến đổi.
Phần kết luận
Bạn có thể dùng enumerate()
chức năng và một for loop
để in ra từng giá trị của một lần lặp với bộ đếm.
Các enumerate()
hàm nhận một đối số bắt đầu có thể lặp lại và tùy chọn.
enumerate(iterable, optional start argument)
Nếu tùy chọn start
đối số bị bỏ qua thì số đếm được đặt thành không.
Sử dụng enumerate()
là một giải pháp thay thế tốt hơn so với việc tạo bộ đếm gia tăng của riêng bạn trong một for loop
.
Các enumerate()
chức năng tự động cập nhật số đếm, loại bỏ khả năng bạn có thể quên tăng số đếm.
Tôi hy vọng bạn thích bài viết này và chúc may mắn trên hành trình Python của bạn.