Trong khi làm việc với danh sách Python, đôi khi, chúng tôi yêu cầu kiểm tra các bản sao và đôi khi cũng có thể yêu cầu theo dõi các chỉ mục của chúng. Loại ứng dụng này có thể xảy ra trong lập trình ngày. Hãy thảo luận về một số cách mà vấn đề này có thể được giải quyết Show
Mục lục Hiển thị
Phương pháp #1. Sử dụng loop + set() # Mã Python3 để chứng minh hoạt động của # Sao chép chỉ số phần tử trong danh sách # Sử dụng vòng lặp set() + # khởi tạo danh sách test_list = [1, 4, 5, 5, 5, 9, 1] # in danh sách gốc print("Danh sach ban dau la. " + str(test_list)) # Sao chép chỉ số phần tử trong danh sách # Sử dụng vòng lặp set() + oc_set = bộ() độ phân giải = [] cho idx, val trong liệt kê (test_list) nếu val không có trong oc_set oc_set. thêm (val) khác độ phân giải. nối thêm (idx) # kết quả in print("Danh sach cac phan tu trùng la. " + str(res)) đầu ra. Danh sách ban đầu là. [1, 4, 5, 5, 5, 9, 1] Danh sách các phần tử trùng lặp là. [3, 4, 6] Phương pháp #2. Sử dụng tính năng hiểu danh sách + cắt danh sách # Mã Python3 để chứng minh hoạt động của # Sao chép chỉ số phần tử trong danh sách # Sử dụng hiểu danh sách + cắt danh sách # khởi tạo danh sách test_list = [1, 4, 5, 5, 5, 9, 1] # in danh sách gốc print("Danh sach ban dau la. " + str(test_list)) # Sao chép chỉ số phần tử trong danh sách # Sử dụng hiểu danh sách + cắt danh sách res = [idx cho idx, val trong liệt kê (test_list) nếu val trong test_list[. idx]] # kết quả in print("Danh sach cac phan tu trùng la. " + str(res)) đầu ra. Danh sách ban đầu là. [1, 4, 5, 5, 5, 9, 1] Danh sách các phần tử trùng lặp là. [3, 4, 6] Thẻ bài viết con trăn Chương trình Python Chương trình danh sách Python Đọc toàn bộ bài báo con trăn. Nhận chỉ mục của mục trong Danh sáchĐể tìm chỉ mục của phần tử trong danh sách trong python, chúng ta sẽ sử dụng hàm list. mục lục(), danh sách. mục lục() Kiểu dữ liệu danh sách của Python cung cấp phương thức này để tìm chỉ mục đầu tiên của một phần tử đã cho trong danh sách hoặc danh sách con i. e quảng cáo danh sách. chỉ mục (x [, bắt đầu [, kết thúc]])Tranh luận
trả lại. Chỉ số dựa trên số 0 về lần xuất hiện đầu tiên của phần tử đã cho trong danh sách hoặc phạm vi. Nếu không có phần tử nào như vậy thì nó sẽ tăng ValueError Tâm điểm. danh sách. index() trả về chỉ mục theo cách dựa trên 0 tôi. e. phần tử đầu tiên trong danh sách có chỉ số 0 và phần tử thứ hai trong chỉ mục là 1 Hãy sử dụng chức năng này để tìm các chỉ mục của một mục nhất định trong danh sách, Giả sử chúng ta có một danh sách các chuỗi, # Danh sách chuỗi list_of_elems = ['Xin chào', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']Bây giờ, hãy tìm chỉ mục xuất hiện đầu tiên của mục 'Ok' trong danh sách, elem = 'Ok' # Tìm vị trí chỉ mục xuất hiện đầu tiên của 'Ok' trong danh sách index_pos = list_of_elems. index(elem) print(f'Chỉ số đầu tiên của phần tử "{elem}" trong danh sách. ', index_pos)đầu ra Chỉ mục đầu tiên của phần tử "Ok" trong danh sách. 1Như trong danh sách. index() chúng tôi không cung cấp đối số bắt đầu và kết thúc, vì vậy nó đã tìm kiếm 'Ok' trong danh sách đầy đủ. Nhưng đã trả lại vị trí chỉ mục ngay khi nó gặp sự xuất hiện đầu tiên của 'Ok' trong danh sách Nhưng nếu mục được tìm kiếm không tồn tại trong danh sách, thì index() sẽ tăng ValueError. Vì vậy, chúng ta cần phải sẵn sàng cho loại kịch bản này. Ví dụ, list_of_elems = ['Xin chào', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok'] elem = 'Tại sao' thử. index_pos = list_of_elems. index(elem) print(f'Chỉ số đầu tiên của phần tử "{elem}" trong danh sách. ', index_pos) ngoại trừ ValueError là e. print(f Phần tử "{element}" không tìm thấy trong danh sách. ', e)đầu ra Phần tử "Tại sao" không tìm thấy trong danh sách. 'Tại sao' không có trong danh sáchVì 'Tại sao' không có trong danh sách, nên danh sách. index() tăng ValueError Tìm chỉ mục của các phần tử trùng lặp trong danh sách Ví dụ về PythonMã ví dụ đơn giản a = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5] res = [idx cho idx, mục trong liệt kê(a) nếu mục trong a[. idx]] in (độ phân giải)đầu ra Một ví dụ khác sử dụng bộ sưu tập Bạn phải nhập mô-đun bộ sưu tập cho ví dụ này nhập bộ sưu tập gốc = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5] dup = [mục cho mục, đếm trong bộ sưu tập. Bộ đếm (bản gốc). items() if count > 1] for i in dup. print("chỉ số của", i, "=", bản gốc. chỉ mục(i))đầu ra chỉ số của 1 = 0 Làm cách nào để lấy chỉ mục của chuỗi trùng lặp trong danh sách?Duyệt qua độ dài của danh sách để chúng tôi có thể theo dõi từng chỉ mục và in chỉ mục nhập bộ sưu tập gốc = ['A', 'B', 'A', 'B', 'C'] dup = [mục cho mục, đếm trong bộ sưu tập. Bộ đếm (bản gốc). items() if count > 1] for i in dup. print("chỉ số của", i, "=", bản gốc. chỉ mục(i))đầu ra chỉ số của A = 0 Hãy bình luận nếu bạn có bất kỳ câu hỏi và nghi ngờ hoặc đề xuất nào về chủ đề danh sách Python này
Bằng cấp về Khoa học Máy tính và Kỹ sư. Nhà phát triển ứng dụng và có kinh nghiệm về nhiều ngôn ngữ lập trình. Đam mê công nghệ & thích học hỏi kỹ thuật Chia sẻ cái này
Có liên quanChỉ 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ápdanh sách. chỉ mục (phần tử, bắt đầu, kết thúc)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 Thí dụ. Để tìm chỉ mục của phần tử đã choTrong 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("Chỉ số của phần tử C là ", my_list. index('C')) print("Chỉ số của phần tử F là ", my_list. chỉ số ('F'))đầu ra Chỉ số của phần tử C là 2 Chỉ số của phần tử F là 5Thí 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("Chỉ số của phần tử . index('C', 1, 5)) print("Chỉ số của phần tử F là ", my_list. index('F', 3, 7)) #chỉ sử dụng startindex print("Chỉ số của phần tử D là ", my_list. chỉ số ('D', 1))đầu ra Chỉ số của phần tử C là 2 Chỉ số của phần tử F là 5 Chỉ số của phần tử D là 3Thí dụ. Để kiểm tra phương thức index() với một phần tử không có mặtKhi 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("Chỉ số của phần tử . chỉ số ('Z'))đầu ra Traceback (most recent call last): File "display.py", line 3, in1. Sử dụng hàm index()Một giải pháp đơn giản là lặp qua danh sách với các chỉ mục bằng cách sử dụng khả năng hiểu danh sách và kiểm tra sự xuất hiện khác của từng phần tử gặp phải bằng cách sử dụng hàm index(). Độ phức tạp về thời gian của giải pháp này sẽ là bậc hai và mã không xử lý các phần tử lặp lại trong đầu ra |