Liệt kê () trong Python là gì?

Hàm liệt kê () là một hàm tích hợp trả về một đối tượng liệt kê. Điều này cho phép bạn lấy chỉ mục của một phần tử trong khi lặp qua danh sách

Trong các ngôn ngữ lập trình khác (C), bạn thường sử dụng vòng lặp for để lấy chỉ mục, trong đó bạn sử dụng độ dài của mảng và sau đó lấy chỉ mục bằng cách sử dụng đó. Đó không phải là Pythonic, thay vào đó bạn nên sử dụng enumerate()

Trong Python, bạn có thể lặp lại danh sách trong khi nhận chỉ mục và giá trị ngay lập tức

khóa học liên quan. Hoàn thành khóa học & bài tập lập trình Python

liệt kê đối tượng

Cú pháp cơ bản là liệt kê (dãy, bắt đầu = 0)

Đối tượng đầu ra bao gồm một bộ đếm như vậy. (0, vật[0]), (1, vật[1]), (2, vật[2]),

Là đầu vào, nó nhận một chuỗi như danh sách, bộ dữ liệu hoặc trình vòng lặp. Tham số bắt đầu là tùy chọn.
Nếu tham số bắt đầu được đặt thành một, quá trình đếm sẽ bắt đầu từ một thay vì không

Tạo một chuỗi và đưa nó vào hàm liệt kê. Đây có thể là bất kỳ loại trình tự nào, trong ví dụ này chúng tôi sử dụng một danh sách. Sau đó, chúng tôi xuất đối tượng

Hãy thử chương trình dưới đây

1
2
3
4
5
6
# create a sequence
browsers = ['Chrome','Firefox','Opera','Vivaldi']

# create an enumeratable and convert to list
x = list(enumerate(browsers))
print(x)

Bạn sẽ thấy đầu ra này

Liệt kê () trong Python là gì?

Đối tượng được trả về có thể được coi như một trình vòng lặp. cuộc gọi phương thức tiếp theo sẽ hoạt động

1
2
3
4
5
6
7
browsers = ['Chrome','Firefox','Opera','Vivaldi']
eObj = enumerate(browsers)

x = next(eObj)
print(x)
x = next(eObj)
print(x)

liệt kê danh sách

Hãy xem cách bạn có thể liệt kê một danh sách Python. Bạn có thể mở Python shell để dùng thử

Bạn có thể lặp qua danh sách Python bằng cách sử dụng enumerate(). Hãy xem điều đó trong một ví dụ đơn giản

1
2
3
4
5
6
7
8
>>> fruits = [ "Apple","Berry","Cherry" ]
>>> for i,j in enumerate(fruits):
.. print(i,j)
..
0 Apple
1 Berry
2 Cherry
>>>

Nó xuất ra cả chỉ số (i) và giá trị (j)

Điều đó thật dễ dàng

Liệt kê một Tuple

Hãy xem cách bạn có thể liệt kê một tuple

Bạn có thể liệt kê một bộ Python, điều này không khác lắm so với việc lặp qua một danh sách.
Mã bên dưới chỉ cho bạn cách lặp qua một bộ.

1
2
3
4
5
6
7
8
>>> fruits = [(15,"Fifteen"), (12,"Twelve"), (19,"Nineteen")]
>>> for i,j in enumerate(fruits):
.. print(i,j)
..
0 (15, 'Fifteen')
1 (12, 'Twelve')
2 (19, 'Nineteen')
>>>

Như mong đợi, nó xuất ra cả chỉ mục và giá trị, trong đó giá trị bây giờ là toàn bộ bộ dữ liệu

Thay vào đó, nếu bạn muốn một đầu ra rõ ràng hơn, bạn có thể sử dụng giải nén tuple

Với giải nén bộ dữ liệu (và định dạng chuỗi f), bạn sẽ có được đầu ra rõ ràng như thế này

1
2
3
4
5
6
7
8
>> fruits = [(15,"Apple"), (12,"Berry"), (19,"Cherry")]
>>> for i,(price,name) in enumerate(fruits):
.. print(f"index {i}, price {price} and name {name}")
..
index 0, price 15 and name Apple
index 1, price 12 and name Berry
index 2, price 19 and name Cherry
>>>

Liệt kê một chuỗi

Bạn có thể lặp lại đối tượng chuỗi không?

Có, bạn có thể, mỗi mục trong chuỗi là một ký tự. Điều này cung cấp cho bạn chỉ mục ký tự và giá trị ký tự, cho mọi ký tự trong chuỗi

Nếu bạn có một chuỗi, bạn có thể lặp lại nó bằng enumerate(string).
Ví dụ bên dưới chỉ cho bạn cách thực hiện điều đó.

# create a sequence
browsers = ['Chrome','Firefox','Opera','Vivaldi']

# create an enumeratable and convert to list
x = list(enumerate(browsers))
print(x)
0
# create a sequence
browsers = ['Chrome','Firefox','Opera','Vivaldi']

# create an enumeratable and convert to list
x = list(enumerate(browsers))
print(x)
1

Đầu ra mã ở trên hiển thị cả chỉ mục và giá trị cho mọi phần tử của chuỗi

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

Hàm enumerate() có một tham số khác, chỉ số bắt đầu. Theo mặc định, các chỉ số bắt đầu từ số không

Tại sao liệt kê được sử dụng trong Python?

Python's enumerate() cho phép bạn viết Pythonic cho các vòng lặp khi bạn cần số đếm và giá trị từ một lần lặp . Ưu điểm lớn của enumerate() là nó trả về một bộ có bộ đếm và giá trị, do đó bạn không phải tự tăng bộ đếm.

Kiểu dữ liệu nào enumerate() trả về?

Kiểu trả về của hàm liệt kê là kiểu đối tượng . Vì vậy, hàm liệt kê trả về một đối tượng bằng cách thêm giá trị bộ đếm lặp lại cho nó. Bạn cũng có thể chuyển đổi đối tượng liệt kê thành list(), tuple(), set() và nhiều đối tượng khác.

Là liệt kê một phương pháp hoặc một chức năng?

Hàm liệt kê() là hàm tích hợp sẵn khả dụng với python. Hàm liệt kê () thêm một bộ đếm cho 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ê.