Sự khác biệt giữa remove() del và pop() trong danh sách python là gì?
remove(), pop() và del đều có thể được sử dụng để xóa các mục khỏi danh sách trong Python. Tuy nhiên, có một số khác biệt cơ bản giữa ba chức năng này liên quan đến cách chúng hoạt động, chế độ lỗi và độ phức tạp tính toán. Show Chúng ta hãy cố gắng hiểu sự khác biệt giữa ba và khi nào nên sử dụng chúng di dời()Phương thức li = [3, 5, 7, 2, 6, 4, 8, 2] li.remove(82) print(li) # ValueError: list.remove(x): x not in list0 khỏi một li = [3, 5, 7, 2, 6, 4, 8, 2] li.remove(82) print(li) # ValueError: list.remove(x): x not in list1 hiện có. Tuy nhiên, nó không loại bỏ tất cả các lần xuất hiện của phần tử trong danh sách cú pháp. li = [3, 5, 7, 2, 6, 4, 8, 2] li.remove(82) print(li) # ValueError: list.remove(x): x not in list2 ⦾ trong đó, danh sách là tên danh sách của bạn ⦾ giá trị là phần tử phải loại bỏ Thí dụ. Trong danh sách dưới đây, phần tử 2 bị xóa khỏi danh sách. Nhưng sự xuất hiện khác của 2 vẫn còn li = [3, 5, 7, 2, 6, 4, 8, 2] li.remove(2) print(li) # [3, 5, 7, 6, 4, 8, 2]
Nếu bạn chỉ định một giá trị không có trong danh sách, Python sẽ tăng Lỗi giá trị . li = [3, 5, 7, 2, 6, 4, 8, 2] li.remove(82) print(li) # ValueError: list.remove(x): x not in list Phân tích độ phức tạp. Độ phức tạp tính toán khi loại bỏ một phần tử x khỏi danh sách n phần tử bằng phương thức remove() là O(n) Trường hợp 1. Để xóa phần tử đầu tiên khỏi danh sách 10000 phần tử bằng cách sử dụng remove() Lưu ý rằng_______0_______6 tạo danh sách có các số li = [3, 5, 7, 2, 6, 4, 8, 2] li.remove(82) print(li) # ValueError: list.remove(x): x not in list7 đại loại như li = [3, 5, 7, 2, 6, 4, 8, 2] li.remove(82) print(li) # ValueError: list.remove(x): x not in list8 Trường hợp 2. Để xóa một phần tử ‘ li = [3, 5, 7, 2, 6, 4, 8, 2] li.remove(82) print(li) # ValueError: list.remove(x): x not in list9‘ khỏi danh sách 10000 phần tử bằng cách sử dụng remove() trường hợp 3. Để xóa phần tử cuối cùng khỏi danh sách 100 phần tử bằng cách sử dụng remove() nhạc pop()Phương thức li = [3, 5, 7, 2, 6, 4, 8] print(li.pop()) # 80 xóa và trả về phần tử cuối cùng từ một li = [3, 5, 7, 2, 6, 4, 8, 2] li.remove(82) print(li) # ValueError: list.remove(x): x not in list1 hiện có. Phương thức li = [3, 5, 7, 2, 6, 4, 8] print(li.pop()) # 82 với đối số tùy chọn li = [3, 5, 7, 2, 6, 4, 8] print(li.pop()) # 83 loại bỏ và trả về phần tử ở vị trí li = [3, 5, 7, 2, 6, 4, 8] print(li.pop()) # 83 cú pháp. li = [3, 5, 7, 2, 6, 4, 8] print(li.pop()) # 85 ⦾ trong đó, danh sách là tên danh sách của bạn ⦾ index là chỉ số của phần tử cần xóa. Nếu chỉ mục không được chỉ định, theo mặc định, -1 được truyền cho phương thức (i. e phần tử cuối cùng bị xóa khỏi danh sách) ví dụ 1. Giả sử chúng ta không chuyển bất kỳ giá trị nào cho li = [3, 5, 7, 2, 6, 4, 8] print(li.pop()) # 86, phần tử cuối cùng trong danh sách sẽ bị xóa li = [3, 5, 7, 2, 6, 4, 8] print(li.pop()) # 8 Lưu ý rằng giá trị đã xóa được trả về khi bạn gọi phương thức li = [3, 5, 7, 2, 6, 4, 8] print(li.pop()) # 86 ví dụ 2. Giả sử, chúng ta truyền một giá trị cho phương thức li = [3, 5, 7, 2, 6, 4, 8] print(li.pop()) # 86, phần tử nằm trong chỉ mục đó sẽ bị xóa li = [3, 5, 7, 2, 6, 4, 8] print(li.pop(2)) # 7
li = [3, 5, 7, 2, 6, 4, 8] print(li.pop(8)) # IndexError: pop index out of range Phân tích độ phức tạp. Độ phức tạp tính toán khi loại bỏ một li = [3, 5, 7, 2, 6, 4, 8] print(li.pop(2)) # 72khỏi li = [3, 5, 7, 2, 6, 4, 8] print(li.pop(2)) # 73 sử dụng phương pháp li = [3, 5, 7, 2, 6, 4, 8] print(li.pop()) # 86 là O(n-i) Trường hợp 1. Để xóa phần tử đầu tiên khỏi danh sách 10000 phần tử bằng cách sử dụng pop() Trường hợp 2. Để xóa một phần tử ở chỉ mục thứ 4900 (phần tử thứ 5000, hãy tham khảo ví dụ về độ phức tạp về thời gian của remove()) khỏi danh sách 10000 phần tử bằng cách sử dụng pop() trường hợp 3. Để xóa phần tử cuối cùng khỏi danh sách 10000 phần tử bằng cách sử dụng pop() xóaĐây là một câu lệnh đơn giản trong Python có thể được sử dụng để xóa một phần tử trong đối tượng lớp hoặc một phần của đối tượng lớp hoặc chính đối tượng lớp đó. Vì danh sách là một lớp nên bất kỳ danh sách nào chúng ta tạo (ví dụ: li = [3, 5, 7, 2, 6, 4, 8] print(li.pop(2)) # 75) đều trở thành đối tượng của danh sách lớp này. Do đó, del có thể được sử dụng trên đối tượng này. Nói một cách đơn giản, từ khóa del có thể được sử dụng để xóa một mục khỏi danh sách hoặc một phần của danh sách hoặc toàn bộ danh sách cú pháp. del li = [3, 5, 7, 2, 6, 4, 8] print(li.pop(2)) # 76 ⦾ trong đó, target_list có thể là một thành phần của danh sách hoặc một phần của danh sách hoặc toàn bộ danh sách ví dụ 1. Để xóa một phần tử trong danh sách li = [3, 5, 7, 2, 6, 4, 8] del li[0] print(li) # [5, 7, 2, 6, 4, 8] ví dụ 2. Để xóa một phần của danh sách li = [3, 5, 7, 2, 6, 4, 8] del li[2:] print(li) # [3, 5] ví dụ 3. Để xóa toàn bộ danh sách li = [3, 5, 7, 2, 6, 4, 8] del li print(li) # NameError: name 'li' is not defined Lưu ý rằng danh sách lst đã bị xóa và khi chúng tôi gọi thì đã xảy ra lỗi
Nếu bạn chỉ định một phần tử có chỉ số sai, Python sẽ tăng li = [3, 5, 7, 2, 6, 4, 8] print(li.pop(8)) # IndexError: pop index out of range1 li = [3, 5, 7, 2, 6, 4, 8] del li[8] print(li) # IndexError: list assignment index out of range Độ phức tạp tính toán khi loại bỏ một phần tử trong chỉ số i ra khỏi danh sách n phần tử bằng cách sử dụng del là O(n-i) Trường hợp 1. Để xóa phần tử đầu tiên khỏi danh sách 10000 phần tử bằng cách sử dụng del Trường hợp 2. Để xóa một phần tử ở chỉ mục thứ 4900 (phần tử thứ 5000, hãy tham khảo ví dụ về độ phức tạp thời gian của li = [3, 5, 7, 2, 6, 4, 8, 2] li.remove(82) print(li) # ValueError: list.remove(x): x not in list3) khỏi danh sách 10000 phần tử bằng cách sử dụng del trường hợp 3. Để xóa phần tử cuối cùng khỏi danh sách 10000 phần tử bằng cách sử dụng del Bản tóm tắtChúng tôi hy vọng bài viết này đã cung cấp một số thông tin chi tiết về cách thức hoạt động của ba phương pháp và thời điểm sử dụng từng phương pháp. Đây là một bản tóm tắt nhanh chóng
Để biết thêm hướng dẫn và thảo luận, vui lòng đăng ký và theo dõi. Cảm ơn bạn đã đọc. học tập vui vẻ. ? Học viện Khoa học Máy tính Finxter
Shubham Sayon Tôi là một người tạo nội dung và Blogger Python chuyên nghiệp. Tôi đã xuất bản nhiều bài báo và tạo các khóa học trong một khoảng thời gian. Hiện tại tôi đang làm việc với tư cách là một freelancer toàn thời gian và tôi có kinh nghiệm trong các lĩnh vực như Python, AWS, DevOps và Networking Sự khác biệt giữa xóa del và bật trong Python là gì?Hàm remove() xóa giá trị khớp đầu tiên khỏi danh sách. Hàm pop() được sử dụng để trả về phần tử đã bị xóa khỏi danh sách. Hàm del() được sử dụng để xóa một phần tử tại một số chỉ mục được chỉ định trong danh sách
Phương thức remove() khác với phương thức pop() như thế nào?Các phần tử mảng có thể được gỡ bỏ bằng phương thức pop() hoặc remove(). Sự khác biệt giữa hai hàm này là hàm trước trả về giá trị đã xóa trong khi hàm sau thì không . |