Python, Sử dụng hàm enumerate (): Lấy các phần tử và chỉ số của danh sách

Kinh doanh

Sử dụng hàm enumerate () của Python, bạn có thể lấy số chỉ mục (đếm, thứ tự) cũng như các phần tử của một đối tượng có thể lặp lại như danh sách hoặc bộ trong vòng lặp for.

Bài viết này giải thích những điều cơ bản về hàm enumerate ().

  • Hàm lấy chỉ mục trong vòng lặp for:enumerate()
    • Vòng lặp for bình thường
    • Vòng lặp for sử dụng hàm enumerate ()
  • Bắt đầu chỉ mục của hàm enumerate () ở 1 (một giá trị khác 0)
  • Chỉ định gia số (bước)

Hàm enumerate () có thể được sử dụng để lấy chỉ mục trong vòng lặp for.

Vòng lặp for bình thường

l = ['Alice', 'Bob', 'Charlie']

for name in l:
    print(name)
# Alice
# Bob
# Charlie

Vòng lặp for sử dụng hàm enumerate ()

Chỉ định một đối tượng có thể lặp lại, chẳng hạn như danh sách làm đối số của hàm enumerate ().

Bạn có thể lấy số chỉ mục và phần tử theo thứ tự đó.

for i, name in enumerate(l):
    print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie

Bắt đầu chỉ mục của hàm enumerate () ở 1 (một giá trị khác 0)

Như thể hiện trong ví dụ trên, theo mặc định, chỉ mục của hàm enumerate () bắt đầu từ 0.

Nếu bạn muốn bắt đầu bằng một số khác 0, hãy chỉ định một số bắt đầu tùy ý làm đối số thứ hai của hàm enumerate ().

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

for i, name in enumerate(l, 1):
    print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie

Tất nhiên, bạn có thể bắt đầu với những con số khác.

for i, name in enumerate(l, 42):
    print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie

Hữu ích khi bạn muốn tạo một chuỗi được đánh số thứ tự; sẽ thông minh hơn nếu chỉ định số bắt đầu làm đối số thứ hai của hàm enumerate () hơn là sử dụng ‘i + 1’ để bắt đầu từ 1.

for i, name in enumerate(l, 1):
    print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie

Xem bài viết sau để biết thêm thông tin về hàm định dạng, được sử dụng để điền các số có số 0.

Chỉ định gia số (bước)

Không có đối số để chỉ định bước tăng dần trong hàm enumerate (), nhưng nó có thể đạt được bằng cách thực hiện như sau

step = 3
for i, name in enumerate(l):
    print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie