Python Hàm enumerate(): Vòng lặp, Tuple & Chuỗi

⚡ Tóm tắt thông minh

Python Phương thức `enumerate()` tự động thêm một bộ đếm vào bất kỳ đối tượng có thể lặp nào, trả về các cặp chỉ mục-giá trị khi bạn lặp. Ở đây, bạn sẽ tìm hiểu cú pháp của nó, chỉ mục bắt đầu tùy chọn và cách nó hoạt động trên danh sách, bộ dữ liệu, chuỗi và từ điển.

  • 🔢 Những gì nó: Thêm một bộ đếm vào mỗi phần tử của một đối tượng có thể lặp lại, trả về các cặp chỉ số-giá trị.
  • ⚙️ Cú pháp: Phương thức `enumerate(iterable, startIndex)` nhận một đối tượng có thể lặp lại cộng với một số bắt đầu tùy chọn.
  • 🔟 Khởi động tùy chỉnh: startIndex xác định điểm bắt đầu đếm; bỏ qua tham số này để bắt đầu từ 0.
  • 🔁 Looping: Kết hợp nó với vòng lặp for để đọc chỉ mục và giá trị cùng nhau.
  • 📦 Bất kỳ đối tượng có thể lặp nào: Hoạt động với danh sách, bộ dữ liệu, chuỗi và từ điển.
  • 🤖 Hỗ trợ từ AI: Các công cụ Copilot và AI tự động hoàn thành các vòng lặp enumerate() và tái cấu trúc các bộ đếm thủ công.

Hàm Enumerate() trong Python

Là gì Python Liệt kê?

Python Liệt kê() là một chức năng tích hợp sẵn với Python thư viện. Nó lấy đầu vào đã cho dưới dạng một tập hợp hoặc các bộ dữ liệu và trả về dưới dạng một đối tượng liệt kê. các Python Lệnh Enumerate() thêm bộ đếm vào từng mục của đối tượng có thể lặp lại và trả về một đối tượng liệt kê dưới dạng chuỗi đầu ra.

Cú pháp của Python liệt kê ()

enumerate(iterable, startIndex)

Thông số Kỹ thuật

Ba tham số là:

  • Lặp lại: một đối tượng có thể được lặp.
  • chỉ mục bắt đầu: (tùy chọn) Việc đếm sẽ bắt đầu bằng giá trị được cung cấp trong startIndex cho mục đầu tiên trong vòng lặp và tăng dần cho mục tiếp theo cho đến khi đạt đến cuối vòng lặp.

Tuy nhiên, nếu startIndex không được chỉ định thì số đếm sẽ bắt đầu từ 0.

Giá trị trả về

Nó sẽ trả về một đối tượng lặp, với giá trị đếm cho từng mục của đối tượng lặp được cung cấp làm đầu vào.

Liệt kê() trong Python Ví dụ

Phương thức liệt kê đi kèm với bộ đếm/chỉ mục tự động cho từng mục có trong danh sách Enumerate trong Python. Giá trị firstindex sẽ bắt đầu từ 0. Bạn cũng có thể chỉ định startindex bằng cách sử dụng tham số tùy chọn startIndex trong enumerate.
Ví dụ
Trong đoạn mã bên dưới, mylist là danh sách được cung cấp cho hàm Enumerate trong Python. Các hàm danh sách() được sử dụng để hiển thị Enumerate Python đầu ra.

Lưu ý: Không có startIndex nào được sử dụng do đó chỉ mục cho mục đầu tiên sẽ bắt đầu từ 0.

Đầu ra của lệnh enumerate sẽ như sau:

(0, item_1), (1, item_2), (2, item_3), … (n, item_n)

Tập tin: python_enumerate.py

mylist = ['A', 'B' ,'C', 'D']
e_list = enumerate(mylist)
print(list(e_list))

Đầu ra:

[(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D')]

Sử dụngEnumerate() trên danh sách có startIndex

Trong ví dụ dưới đây, chỉ mục bắt đầu được cung cấp là 2. Chỉ mục của mục đầu tiên sẽ bắt đầu từ chỉ mục bắt đầu đã cho.

Ví dụ:

Trong ví dụ dưới đây, mylist là danh sách được đưa ra để liệt kê. Hàm list() được sử dụng để hiển thị kết quả liệt kê.

mylist = ['A', 'B' ,'C', 'D']
e_list = enumerate(mylist,2)
print(list(e_list))

Đầu ra:

[(2, 'A'), (3, 'B'), (4, 'C'), (5, 'D')]

Looping Trên một đối tượng Enumerate

Ví dụ này cho thấy việc liệt kê một đối tượng có và không có startIndex.

  • Vòng lặp for đầu tiên không có startIndex nên chỉ số bắt đầu từ 0.
  • Vòng lặp for thứ hai có startIndex là 10, vì vậy chỉ mục bắt đầu từ 10.

Ví dụ:

mylist = ['A', 'B' ,'C', 'D']

for i in enumerate(mylist):
  print(i)
  print("\n")

print("Using startIndex as 10")    

for i in enumerate(mylist, 10):
  print(i)
  print("\n")

Đầu ra:

(0, 'A')
(1, 'B')
(2, 'C')
(3, 'D')

Using startIndex as 10
(10, 'A')
(11, 'B')
(12, 'C')
(13, 'D')

Liệt kê một Tuple

Trong ví dụ dưới đây, bạn có thể sử dụng một bộ dữ liệu bên trong một bảng liệt kê. Bạn cũng có thể sử dụng startIndex và khóa cho mỗi mục sẽ bắt đầu từ startIndex đã cho.

Theo mặc định, startIndex là 0. Ở đó, do đó bạn thấy khóa là 0 cho mục A và 1 cho mục B, v.v.

Ví dụ:

my_tuple = ("A", "B", "C", "D", "E")
for i in enumerate(my_tuple):
  print(i)

Đầu ra:

(0, 'A')
(1, 'B')
(2, 'C')
(3, 'D')
(4, 'E')

Liệt kê một chuỗi

In Python, chuỗi là một mảng và do đó bạn có thể lặp lại nó. Nếu bạn chuyển một chuỗi tới enumerate(), kết quả đầu ra sẽ hiển thị cho bạn chỉ mục và giá trị cho từng ký tự của chuỗi.

Ví dụ:

my_str = "Guru99 "
for i in enumerate(my_str):
  print(i)

Đầu ra:

(0, 'G')
(1, 'u')
(2, 'r')
(3, 'u')
(4, '9')
(5, '9')

Liệt kê một từ điển

In Python, một từ điển được liệt kê trong dấu ngoặc nhọn, bên trong dấu ngoặc nhọn này, các giá trị được khai báo.

Mỗi phần tử là một cặp khóa/giá trị và được phân tách bằng dấu phẩy. Bạn có thể sử dụng từ điển bên trong enumerate() và xem kết quả đầu ra.

my_dict = {"a": "PHP", "b":"JAVA", "c":"PYTHON", "d":"NODEJS"}
for i in enumerate(my_dict):
  print(i)

Đầu ra:

(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')

Ưu điểm của việc sử dụng Enumerate

Dưới đây là những ưu/lợi ích của việc sử dụng Enumerate trong Python:

  • Enumerate cho phép bạn lặp qua danh sách, bộ dữ liệu, từ điển, chuỗi và đưa ra các giá trị cùng với chỉ mục.
  • Để lấy giá trị chỉ mục bằng vòng lặp for, bạn có thể sử dụng list.index(n). Tuy nhiên, list.index(n) rất tốn kém vì nó sẽ đi qua vòng lặp for hai lần. Enumerate rất hữu ích trong trường hợp này vì nó cung cấp chỉ mục và các mục cùng một lúc.

Câu Hỏi Thường Gặp

Hàm `enumerate()` là một hàm tích hợp sẵn dùng để thêm một bộ đếm vào một đối tượng có thể lặp lại như danh sách, bộ dữ liệu, chuỗi hoặc từ điển, trả về các cặp chỉ mục-giá trị.

Cú pháp là enumerate(iterable, startIndex). Iterable là bất kỳ đối tượng nào có thể lặp; startIndex là một số bắt đầu tùy chọn. Nếu không có nó, việc đếm sẽ bắt đầu từ 0.

Truyền thêm một đối số thứ hai, ví dụ như enumerate(mylist, 2). Khi đó, việc đếm sẽ bắt đầu từ giá trị đó thay vì 0, vì vậy mục đầu tiên sẽ có chỉ số là 2.

Đúng vậy. Việc truyền một từ điển sẽ lặp qua các khóa của nó, ghép mỗi khóa với một chỉ mục. Sử dụng phương thức `enumerate` để liệt kê các mục của từ điển khi bạn cũng cần các giá trị.

enumerate() sạch sẽ và nhanh hơn so với việc sử dụng chỉ mục thủ công hoặc list.index(n), vốn quét hai lần và trả về chỉ mục và mục cùng nhau.

Các trợ lý AI như GitHub Copilot tự động hoàn thành vòng lặp enumerate(), đề xuất startIndex và tái cấu trúc các bộ đếm thủ công, giúp tăng tốc quá trình lập trình theo lối mòn. Python và phát hiện những lỗi sai lệch một đơn vị.

Đúng vậy. Các công cụ kiểm tra cú pháp được hỗ trợ bởi AI tự động hóa quá trình tái cấu trúc này, phát hiện các mẫu range(len(x)) và viết lại chúng thành enumerate(x) để mã sạch hơn và hiệu quả hơn. Pythoncác vòng lặp ic có hành vi giống hệt nhau.

Phương thức `enumerate()` trả về một đối tượng liệt kê, một trình lặp gồm các cặp (chỉ mục, giá trị). Bạn có thể lặp trực tiếp hoặc sử dụng `list()` để xem tất cả các cặp.

Tóm tắt bài viết này với: