Cách lặp lại danh sách trong python theo chỉ mục
Tuy nhiên, nếu bạn không quen với cú pháp hoặc muốn tìm ra các cách khác để truy cập chỉ mục trong vòng lặp for, vui lòng tham khảo Show
Trong hướng dẫn này, bạn học cách
Hàm liệt kê () trong PythonCách đơn giản nhất để truy cập chỉ mục của vòng lặp for trong Python là sử dụng hàm enumerate() tích hợp sẵn Trước khi xem một loạt các ví dụ, chúng ta hãy xem cách thức hoạt động của hàm enumerate() Hàm liệt kê () hoạt động như thế nàoHàm liệt kê () có thể được gọi trên bất kỳ lần lặp nào trong Python Sau đó, nó kết hợp từng phần tử trong iterable với một chỉ mục và trả về kết quả dưới dạng một đối tượng liệt kê Để trực quan hóa đối tượng liệt kê, bạn có thể chuyển đổi nó thành danh sách bằng cách sử dụng hàm list() Ví dụ names = ["Alice", "Bob", "Charlie"] names_idx = enumerate(names) print(list(names_idx)) đầu ra [(0, 'Alice'), (1, 'Bob'), (2, 'Charlie')] Như bạn có thể thấy, các tên trong danh sách hiện nằm trong một bộ và với mỗi tên, có một chỉ mục liên quan Dưới đây là một minh họa của quá trình liệt kê Hàm liệt kê kết hợp từng phần tử với một chỉ mụcKhi bạn gọi enumerate(), việc lập chỉ mục bắt đầu từ 0 theo mặc định Tuy nhiên, bạn có thể thay đổi điều này bằng cách chỉ định một tham số bắt đầu tùy chọn cho lệnh gọi hàm enumerate() Chẳng hạn, hãy lập chỉ mục bắt đầu từ 1 names = ["Alice", "Bob", "Charlie"] names_idx = enumerate(names, start=1) print(list(names_idx)) đầu ra [(1, 'Alice'), (2, 'Bob'), (3, 'Charlie')] Bây giờ bạn đã hiểu cách thức hoạt động của hàm enumerate(), hãy sử dụng nó để truy cập chỉ mục trong vòng lặp for Cách lấy chỉ mục trong vòng lặp ForĐể lấy chỉ mục trong vòng lặp for
Ví dụ names = ["Alice", "Bob", "Charlie"] names_idx = enumerate(names) for index, name in names_idx: print(f"{name}: {index}") đầu ra Alice: 0 Bob: 1 Charlie: 2 Nếu bạn là người mới bắt đầu và gặp khó khăn trong việc hiểu phần index, name trong vòng lặp, vui lòng xem bài viết giải nén tuple Nhân tiện, bạn không cần lưu trữ riêng biến lặp được liệt kê thành một biến riêng. Thay vào đó, bạn có thể gọi trực tiếp hàm enumerate() khi bắt đầu vòng lặp for Điều này giúp bạn tiết kiệm một dòng mã Ví dụ names = ["Alice", "Bob", "Charlie"] for index, name in enumerate(names): print(f"{name}: {index}") đầu ra Alice: 0 Bob: 1 Charlie: 2 Tiếp theo, chúng ta hãy xem cách thay đổi chỉ mục bắt đầu liệt kê Cách bắt đầu lập chỉ mục ở giá trị tùy chỉnhTrong ví dụ trước, việc lập chỉ mục bắt đầu từ 0 Tuy nhiên, điều khá phổ biến là bạn muốn lập chỉ mục bắt đầu từ một nơi khác ngoài 0 May mắn thay, hàm enumerate() cho phép chỉ định một chỉ số bắt đầu khác không Vòng lặp for có chỉ số khác 0
Ví dụ: hãy lập chỉ mục bắt đầu từ 1 Alice: 0 Bob: 1 Charlie: 20 đầu ra Alice: 0 Bob: 1 Charlie: 21 Liệt kê hoạt động với tất cả các lần lặpCho đến nay, bạn mới chỉ thấy cách truy cập chỉ mục vòng lặp for khi xử lý các danh sách trong Python Tuy nhiên, bạn có thể gọi hàm enumerate() trên bất kỳ kiểu lặp nào trong Python, chẳng hạn như bộ hoặc chuỗi Nhân tiện, nếu bạn không quen với iterables, vui lòng xem hướng dẫn đầy đủ này Ví dụ: hãy lấy chỉ số của từng chữ cái trong một chuỗi Alice: 0 Bob: 1 Charlie: 22 đầu ra Alice: 0 Bob: 1 Charlie: 23 Bây giờ bạn đã hiểu cách sử dụng hàm enumerate() để lấy chỉ số của vòng lặp for trong Python Đây là một giải pháp tao nhã cho vấn đề. Tôi khuyên bạn nên gắn bó với nó Tuy nhiên, để hoàn thiện, tôi sẽ chỉ ra các cách khác để lập chỉ mục cho các vòng lặp Các cách thay thế cho vòng lặp với chỉ mụcDưới đây là danh sách các cách khác để truy cập chỉ mục vòng lặp for trong Python Biến chỉ mục riêng biệtCách cơ bản nhất để lấy chỉ mục của vòng lặp for là theo dõi biến chỉ mục Điều này thường được dạy trong các khóa học lập trình cấp độ mới bắt đầu. Ngoài ra, một số ngôn ngữ lập trình thậm chí không có chức năng như enumerate() mà bạn có thể sử dụng Chẳng hạn, hãy in tên và vị trí của chúng trong danh sách Alice: 0 Bob: 1 Charlie: 24 đầu ra Alice: 0 Bob: 1 Charlie: 2 Nhược điểm của phương pháp này là bạn cần nhớ cập nhật biến chỉ mục bổ sung. Điều này giới thiệu mã không cần thiết và làm cho mã dễ bị lỗi và hành vi ngoài ý muốn Bởi vì có một hàm enumerate() riêng biệt dành để giải quyết vấn đề này, tốt hơn là sử dụng nó để thay thế Hàm zip()Đưa ra một phần tử có thể lặp lại và một danh sách các chỉ số riêng biệt, bạn có thể ghép hai phần tử này lại với nhau bằng hàm zip() Ví dụ Alice: 0 Bob: 1 Charlie: 26 đầu ra Alice: 0 Bob: 1 Charlie: 2 Tuy nhiên, điều này thường không thực tế do thực tế là bạn nên chỉ định một chuỗi riêng cho các chỉ số Nếu bạn không có danh sách chỉ mục riêng, tất nhiên bạn có thể tạo một danh sách bằng cách sử dụng hàm range() và sau đó nén nó cùng với danh sách Alice: 0 Bob: 1 Charlie: 28 đầu ra Alice: 0 Bob: 1 Charlie: 2 Dù sao, làm điều này khá vô ích vì hàm enumerate() tích hợp thực hiện chính xác điều này với ít mã hơn và dễ hiểu hơn Hàm phạm vi ()Trong Python, bạn có thể sử dụng hàm range() để tạo một dãy số từ điểm bắt đầu đến điểm kết thúc Thật dễ dàng để lặp lại một phạm vi trong Python Với độ dài của một lần lặp, bạn có thể tạo một loạt các chỉ mục bằng cách sử dụng hàm range(). Sau đó, bạn có thể sử dụng các chỉ số này để truy cập các phần tử của iterable trong vòng lặp for Ví dụ names = ["Alice", "Bob", "Charlie"] names_idx = enumerate(names) print(list(names_idx))0 đầu ra Alice: 0 Bob: 1 Charlie: 2 Danh sách hiểuCuối cùng nhưng không kém phần quan trọng, bạn có thể đã nghe nói về khả năng hiểu danh sách trong Python Khả năng hiểu danh sách cung cấp cách viết tắt một dòng để sử dụng vòng lặp for. Sử dụng hiểu danh sách không bao giờ là bắt buộc. Đôi khi có thể thuận tiện để chuyển đổi một vòng lặp for cơ bản thành một cách hiểu danh sách một lớp ngắn Dù sao, bạn có thể sử dụng khả năng hiểu danh sách khi muốn truy cập chỉ mục của vòng lặp for Chẳng hạn, hãy kết hợp khả năng hiểu danh sách và hàm enumerate() để tạo một vòng lặp rút gọn với chỉ mục names = ["Alice", "Bob", "Charlie"] names_idx = enumerate(names) print(list(names_idx))2 đầu ra Alice: 0 Bob: 1 Charlie: 2 Mặc dù biểu thức này giúp bạn tiết kiệm một dòng mã, nhưng người ta có thể tranh luận rằng nó trông gọn gàng hơn khi được sử dụng như một vòng lặp for thông thường Hãy thận trọng để không hy sinh chất lượng mã với khả năng hiểu Phần kết luậnHôm nay bạn đã học cách truy cập chỉ mục trong vòng lặp for trong Python Tóm lại, có một hàm enumerate() tích hợp có thể được gọi trên bất kỳ iterable nào. Nó kết hợp các phần tử với một chỉ mục mà bạn có thể sử dụng khi lặp qua nó Ngoài việc sử dụng hàm enumerate(), còn có rất nhiều tùy chọn (thường tệ hơn) để lặp với chỉ mục Làm cách nào để lặp qua chỉ mục danh sách trong Python?Bạn có thể truy cập chỉ mục ngay cả khi không sử dụng enumerate(). . Sử dụng vòng lặp for, lặp qua độ dài của my_list. Chỉ số biến vòng lặp bắt đầu từ 0 trong trường hợp này Trong mỗi lần lặp lại, hãy lấy giá trị của danh sách tại chỉ mục hiện tại bằng cách sử dụng câu lệnh value = my_list[index] In giá trị và chỉ mục Bạn có thể lập chỉ mục vào một danh sách trong Python không?Nó cho phép bạn lưu trữ một tập hợp liệt kê các mục ở một nơi và truy cập một mục theo vị trí của nó – chỉ mục. Ở đây chúng tôi đã xác định một danh sách các màu. Mỗi mục trong danh sách có một giá trị (tên màu) và một chỉ mục (vị trí của nó trong danh sách). Python sử dụng lập chỉ mục dựa trên số không .
Bạn có thể lập chỉ mục một lần lặp trong Python không?Sử dụng phương thức enumerate(), bạn có thể truy cập chỉ mục của các đối tượng có thể lặp lại . phương thức enumerate() có hai tham số. các đối tượng có thể lặp lại (chẳng hạn như danh sách, tuple) và tham số bắt đầu. phương thức enumerate() bắt đầu bằng 0 (theo mặc định). Nó trả về các đối tượng liệt kê.
Làm cách nào để kiểm tra chỉ mục trong vòng lặp Python?Đây là cách bạn có thể truy cập các chỉ số và phần tử của mảng bằng cách sử dụng vòng lặp for-in. . Vòng các phần tử với bộ đếm và toán tử +=. . Vòng lặp các phần tử bằng phương thức enumerate(). . Sử dụng riêng chỉ mục và giá trị. . Bạn có thể thay đổi số chỉ mục thành bất kỳ số gia nào. . Tăng bộ đếm tự động với phạm vi (len ( |