Danh sách là vùng chứa lưu trữ các mục thuộc các loại dữ liệu khác nhau [int, float, Boolean, chuỗi, v.v. ] theo thứ tự. Đây là một cấu trúc dữ liệu quan trọng được tích hợp sẵn trong Python. Dữ liệu được ghi bên trong dấu ngoặc vuông [[]] và các giá trị được phân tách bằng dấu phẩy [,]
Các mục bên trong danh sách được lập chỉ mục với phần tử đầu tiên bắt đầu từ chỉ mục 0. Bạn có thể thực hiện các thay đổi trong danh sách đã tạo bằng cách thêm các mục mới hoặc bằng cách cập nhật, xóa các mục hiện có. Nó cũng có thể có các mục trùng lặp và danh sách lồng nhau
Có nhiều phương thức có sẵn trong một danh sách và một trong những phương thức quan trọng là chỉ mục []
Trong hướng dẫn này, bạn sẽ học
Chỉ mục danh sách Python[]
Phương thức list index[] giúp bạn tìm chỉ số thấp nhất đầu tiên của phần tử đã cho. Nếu có các phần tử trùng lặp trong danh sách, chỉ mục đầu tiên của phần tử được trả về. Đây là cách dễ dàng và đơn giản nhất để lấy chỉ mục
Bên cạnh phương thức list index[] có sẵn, bạn cũng có thể sử dụng các cách khác để lấy chỉ mục như lặp qua danh sách, sử dụng các phương thức hiểu danh sách, liệt kê[], lọc
Phương thức list index[] trả về chỉ số thấp nhất đầu tiên của phần tử đã cho
cú pháp
list.index[element, start, end]
Thông số
Tham sốDescriptionelementPhần tử mà bạn muốn lấy chỉ mục. start Tham số này là tùy chọn. Bạn có thể xác định bắt đầu. chỉ mục để tìm kiếm phần tử. Nếu không được cung cấp, giá trị mặc định là 0. end Tham số này là tùy chọn. Bạn có thể chỉ định chỉ mục kết thúc cho phần tử được tìm kiếm. Nếu không đưa ra thì coi như hết danh sáchGiá trị trả về
Phương thức list index[] trả về chỉ số của phần tử đã cho. Nếu phần tử không có trong danh sách, phương thức index[] sẽ báo lỗi, ví dụ ValueError. 'Yếu tố' không có trong danh sách
Ví dụ. Để tìm chỉ mục của phần tử đã cho
Trong danh sách my_list = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’] , chúng ta muốn biết chỉ số của phần tử C và F
Ví dụ dưới đây cho thấy cách lấy chỉ mục
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print["The index of element C is ", my_list.index['C']] print["The index of element F is ", my_list.index['F']]
đầu ra
The index of element C is 2 The index of element F is 5
Ví dụ. Sử dụng start và end trong index[]
Trong ví dụ này sẽ cố gắng hạn chế tìm kiếm chỉ mục trong danh sách bằng cách sử dụng chỉ mục bắt đầu và kết thúc
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print["The index of element C is ", my_list.index['C', 1, 5]] print["The index of element F is ", my_list.index['F', 3, 7]] #using just the startindex print["The index of element D is ", my_list.index['D', 1]]
đầu ra
The index of element C is 2 The index of element F is 5 The index of element D is 3
Ví dụ. Để kiểm tra phương thức index[] với một phần tử không có mặt
Khi bạn cố gắng tìm kiếm chỉ mục trong danh sách cho phần tử không có mặt, bạn sẽ gặp lỗi như hình bên dưới
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print["The index of element C is ", my_list.index['Z']]
đầu ra
Traceback [most recent call last]: File "display.py", line 3, in print["The index of element C is ", my_list.index['Z']] ValueError: 'Z' is not in list
Sử dụng vòng lặp for để lấy chỉ số của một phần tử trong danh sách
Với danh sách. index[], chúng ta đã thấy rằng nó cung cấp chỉ mục của phần tử được truyền dưới dạng đối số
Bây giờ hãy coi danh sách là. my_list = [‘Guru’, ‘Siya’, ‘Tiya’, ‘Guru’, ‘Daksh’, ‘Riya’, ‘Guru’]. Tên 'Guru' xuất hiện 3 lần trong chỉ mục và tôi muốn tất cả các chỉ mục có tên 'Guru'
Sử dụng vòng lặp for, chúng ta sẽ có thể lấy nhiều chỉ mục như trong ví dụ bên dưới
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] all_indexes = [] for i in range[0, len[my_list]] : if my_list[i] == 'Guru' : all_indexes.append[i] print["Originallist ", my_list] print["Indexes for element Guru : ", all_indexes]
đầu ra
________số 8Sử dụng vòng lặp while và danh sách. mục lục[]
Sử dụng vòng lặp while sẽ lặp qua danh sách đã cho để lấy tất cả các chỉ mục của phần tử đã cho
Trong danh sách. my_list = [‘Guru’, ‘Siya’, ‘Tiya’, ‘Guru’, ‘Daksh’, ‘Riya’, ‘Guru’], chúng ta cần tất cả các chỉ mục của phần tử 'Guru'
Dưới đây là một ví dụ cho thấy cách lấy tất cả các chỉ mục bằng cách sử dụng vòng lặp while
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] result = [] elementindex = -1 while True: try: elementindex = my_list.index['Guru', elementindex+1] result.append[elementindex] except ValueError: break print["OriginalList is ", my_list] print["The index for element Guru is ", result]
đầu ra
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print["The index of element C is ", my_list.index['C']] print["The index of element F is ", my_list.index['F']]0
Sử dụng khả năng hiểu danh sách để lấy chỉ mục của phần tử trong danh sách
Để có được tất cả các chỉ mục, một cách nhanh chóng và đơn giản là sử dụng khả năng hiểu danh sách trên danh sách
Khả năng hiểu danh sách là các hàm Python được sử dụng để tạo các chuỗi mới [chẳng hạn như danh sách, từ điển, v.v. ] tôi. e. , sử dụng các trình tự đã được tạo
Chúng giúp giảm các vòng lặp dài hơn và làm cho mã của bạn dễ đọc và dễ bảo trì hơn
Ví dụ sau đây cho thấy làm thế nào để làm điều đó
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print["The index of element C is ", my_list.index['C']] print["The index of element F is ", my_list.index['F']]1
đầu ra
________số 8Sử dụng Enumerate để lấy chỉ mục của một phần tử trong danh sách
Hàm Enumerate[] là một hàm có sẵn trong python. Bạn có thể sử dụng kiểu liệt kê để lấy tất cả các chỉ mục của phần tử trong danh sách. Nó nhận đầu vào như một đối tượng có thể lặp lại [i. e. , một đối tượng có thể được lặp lại] và đầu ra là một đối tượng có bộ đếm cho từng mục
Ví dụ sau cho thấy cách sử dụng liệt kê trong danh sách để lấy tất cả các chỉ mục cho phần tử đã cho
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print["The index of element C is ", my_list.index['C']] print["The index of element F is ", my_list.index['F']]3
đầu ra
________số 8Sử dụng bộ lọc để lấy chỉ mục của một phần tử trong danh sách
Phương thức filter[] lọc danh sách đã cho dựa trên hàm đã cho. Mỗi phần tử của danh sách sẽ được chuyển đến hàm và các phần tử được yêu cầu sẽ được lọc dựa trên điều kiện được đưa ra trong hàm
Chúng ta hãy sử dụng phương thức filter[] để lấy chỉ mục cho phần tử đã cho trong danh sách
Ví dụ sau cho thấy cách sử dụng bộ lọc trên danh sách
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print["The index of element C is ", my_list.index['C']] print["The index of element F is ", my_list.index['F']]5
đầu ra
________số 8Sử dụng NumPy để lấy chỉ mục của một phần tử trong danh sách
Thư viện NumPy được sử dụng đặc biệt cho mảng. Vì vậy, ở đây sẽ sử dụng NumPy để lấy chỉ mục của phần tử chúng ta cần từ danh sách đã cho
Để sử dụng NumPy, chúng ta phải cài đặt và nhập nó
Dưới đây là các bước cho cùng
Bước 1] Cài đặt NumPy
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print["The index of element C is ", my_list.index['C']] print["The index of element F is ", my_list.index['F']]7
Bước 2] Nhập mô-đun NumPy
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print["The index of element C is ", my_list.index['C']] print["The index of element F is ", my_list.index['F']]8
Bước 3] Sử dụng np. mảng để chuyển đổi danh sách thành một mảng
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print["The index of element C is ", my_list.index['C']] print["The index of element F is ", my_list.index['F']]9
Bước 4] Lấy chỉ mục của phần tử bạn muốn, sử dụng np. ở đâu[]
The index of element C is 2 The index of element F is 50
Mã làm việc cuối cùng với đầu ra như sau
The index of element C is 2 The index of element F is 51
đầu ra
The index of element C is 2 The index of element F is 52
Sử dụng more_itertools. định vị [] để lấy chỉ mục của một phần tử trong danh sách
more_itertools. định vị [] giúp tìm các chỉ mục của phần tử trong danh sách. Mô-đun này sẽ hoạt động với phiên bản python 3. 5+. Gói more_itertools phải được cài đặt trước để sử dụng nó