Tìm chỉ mục của nhiều phần tử trong mảng python
Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để tìm chỉ mục danh sách của tất cả các lần xuất hiện của một phần tử. Trong nhiều trường hợp, Python giúp việc tìm chỉ mục đầu tiên của một phần tử trong danh sách trở nên đơn giản. Tuy nhiên, vì danh sách Python có thể chứa các mục trùng lặp, nên có thể hữu ích khi tìm tất cả các chỉ số của một phần tử trong danh sách Show
Đến cuối hướng dẫn này, bạn sẽ học được
Bắt đầu nào Mục lục Cách chỉ số danh sách Python hoạt độngTrước khi tìm hiểu cách lấy vị trí chỉ mục của tất cả các phần tử trong danh sách Python, hãy dành một chút thời gian để hiểu cách danh sách Python được lập chỉ mục. Vì danh sách Python là các đối tượng chứa có thứ tự, nên thứ tự của chúng vẫn giữ nguyên trừ khi nó bị thay đổi rõ ràng Các chỉ số danh sách Python bắt đầu từ 0 và tiếp tục đến hết độ dài của danh sách trừ đi một. Hình ảnh bên dưới cho thấy cách các chỉ mục danh sách này hoạt động trong Python Trong phần sau, bạn sẽ học cách sử dụng phương thức list 2 để tìm chỉ mục của một phần tử trong danh sáchPhương thức lập chỉ mục danh sách Python hoạt động như thế nàoDanh sách Python 2 có ba tham số
Đối số bắt buộc duy nhất là phần tử cần tìm kiếm. Theo mặc định, Python sẽ tìm kiếm trong toàn bộ danh sách, trừ khi có thông báo rõ ràng khác Chúng ta hãy xem phương pháp này trông như thế nào
Hãy xem một ví dụ. Chúng ta có thể tải một danh sách với các phần tử khác nhau trong đó và tìm chỉ mục của phần tử bằng phương thức 2
Trong ví dụ trên, chúng tôi đã áp dụng phương pháp 2 trong danh sách của mình để tìm chỉ mục của phần tử 0. Phương thức trả về giá trị 1, nghĩa là item tồn tại ở vị trí thứ 0. Tuy nhiên, chúng tôi biết rằng giá trị tồn tại nhiều lần trong danh sáchTại sao phương thức không trả về nhiều hơn chỉ số đầu tiên? . Ngay cả khi một mục tồn tại nhiều lần, chỉ phiên bản đầu tiên được trả về Trong các phần sau, bạn sẽ tìm hiểu cách lấy vị trí chỉ mục của tất cả các lần xuất hiện của một phần tử trong danh sách Cách lấy chỉ mục của tất cả các lần xuất hiện của phần tử trong danh sách Python bằng vòng lặp For và liệt kêMột trong những cách cơ bản nhất để có được vị trí chỉ mục của tất cả các lần xuất hiện của một phần tử trong danh sách Python là sử dụng vòng lặp for và hàm liệt kê Python. Hàm liệt kê được sử dụng để lặp lại một đối tượng và trả về cả chỉ mục và phần tử Vì điều này, chúng tôi có thể kiểm tra xem phần tử có khớp với phần tử chúng tôi muốn tìm hay không. Nếu có, chúng ta có thể thêm vị trí chỉ mục vào danh sách khác. Hãy xem cách nó hoạt động với một ví dụ
Hãy phá vỡ những gì chúng tôi đã làm ở đây
Cách lấy chỉ mục của tất cả các lần xuất hiện của phần tử trong danh sách Python với more_itertoolsThư viện 3 tích hợp đi kèm với một số chức năng hữu ích. Một trong những chức năng này là chức năng 4 có thể lặp lại và một chức năng để đánh giá dựa trênĐể tìm vị trí chỉ mục của tất cả các phần tử khớp với một phần tử, chúng ta có thể sử dụng hàm lambda để kiểm tra xem mục đó có bằng với mục mà chúng ta muốn kiểm tra hay không Hãy xem một ví dụ ________số 8Hãy phá vỡ những gì chúng tôi đã làm ở đây
Cách lấy chỉ mục của tất cả các lần xuất hiện của phần tử trong danh sách Python với NumpyNumPy làm cho quá trình tìm tất cả các vị trí chỉ mục của một phần tử trong danh sách rất dễ dàng và nhanh chóng. Điều này có thể được thực hiện bằng cách sử dụng hàm 6. Hàm 6 trả về vị trí chỉ mục của tất cả các mục trong một mảng khớp với một giá trị đã choHãy xem một ví dụ 2Hãy phá vỡ những gì chúng tôi đã làm ở đây
Cách lấy chỉ mục của tất cả các lần xuất hiện của phần tử trong danh sách Python với khả năng hiểu danh sáchTrong phần này, chúng ta sẽ xem cách sử dụng khả năng hiểu danh sách để trả về danh sách các chỉ số của một phần tử trong danh sách. Phương thức này hoạt động giống như phương thức đầu tiên, vòng lặp for, ngoại trừ nó sử dụng cách hiểu danh sách Hãy xem cách chúng ta có thể chuyển đổi vòng lặp for thành cách hiểu danh sách 4Phương thức hiển thị ở trên rõ ràng và dễ đọc hơn nhiều so với vòng lặp for. Trong phần tiếp theo, chúng ta sẽ xem các phương pháp khác nhau này so sánh như thế nào về tốc độ Phương pháp nào nhanh nhất để lấy chỉ mục của tất cả các lần xuất hiện của một phần tử trong danh sách PythonBảng dưới đây chia nhỏ thời gian mỗi phương pháp mất để tìm các chỉ số của tất cả các lần xuất hiện trong danh sách một trăm triệu phần tử MethodThời gian để thực thi vòng lặp For và 24. 97 giây more_itertools ________ 147. 08 giâynumpy 66. 05 giâyHiểu danh sách và 24. 69 giâyThời gian thực hiện của từng phương thức nàyChúng ta có thể thấy rằng phương pháp hiểu danh sách là nhanh nhất. Phương pháp này không chỉ nhanh nhất mà còn rất dễ đọc và không yêu cầu các gói bổ sung Phần kết luậnTrong hướng dẫn này, bạn đã học cách tìm vị trí chỉ mục của tất cả các lần xuất hiện của một phần tử trong danh sách Python. Bạn đã học cách thực hiện việc này bằng hàm Python 2 sử dụng cả vòng lặp for và khả năng hiểu danh sách. Bạn cũng đã học cách sử dụng hàm numpy 6 để làm và hàm more_itertools 4 |