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.
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 list.remove[element]
xóa lần xuất hiện đầu tiên của
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]
li = [3, 5, 7, 2, 6, 4, 8, 2] li.remove[82] print[li] # ValueError: list.remove[x]: x not in list
3 hoạt động dựa trên giá trị của phần tử danh sách chứ không phải chỉ mụcli = [3, 5, 7, 2, 6, 4, 8, 2] li.remove[82] print[li] # ValueError: list.remove[x]: x not in list
3 là một phương thức của danh sách lớp- Phương pháp
li = [3, 5, 7, 2, 6, 4, 8, 2] li.remove[82] print[li] # ValueError: list.remove[x]: x not in list
3 không trả về bất cứ thứ gì
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
6 hành động theo chỉ số của một phần tửli = [3, 5, 7, 2, 6, 4, 8] print[li.pop[]] # 8
6là một phương thức của danh sách lớp- Phương thức
li = [3, 5, 7, 2, 6, 4, 8] print[li.pop[]] # 8
6 trả về phần tử đã bị xóa - Nếu bạn chỉ định một giá trị không có trong danh sách, Python sẽ tăng IndexError
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
li = [3, 5, 7, 2, 6, 4, 8] print[li.pop[2]] # 7
7 hành động dựa trên chỉ số của một phần tửli = [3, 5, 7, 2, 6, 4, 8] print[li.pop[2]] # 7
7 là một từ khóa có thể được sử dụng trên bất kỳ đối tượng lớp nào như danh sách, từ điển, bộ dữ liệu, v.v.li = [3, 5, 7, 2, 6, 4, 8] print[li.pop[2]] # 7
7 không trả lại bất cứ thứ gì- Nếu bạn chỉ định một tên danh sách sai hoặc tên danh sách đã bị xóa, nó sẽ tăng
li = [3, 5, 7, 2, 6, 4, 8] print[li.pop[8]] # IndexError: pop index out of range
0
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ắt
Chú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
- Khi bạn muốn xóa một phần tử của danh sách dựa trên giá trị của nó, hãy sử dụng
li = [3, 5, 7, 2, 6, 4, 8, 2] li.remove[82] print[li] # ValueError: list.remove[x]: x not in list
3 - Khi bạn muốn xóa toàn bộ danh sách hoặc một phần danh sách, hãy sử dụng
li = [3, 5, 7, 2, 6, 4, 8] print[li.pop[2]] # 7
7 - Khi bạn muốn xóa một phần tử của danh sách dựa trên chỉ mục của nó
- sử dụng
li = [3, 5, 7, 2, 6, 4, 8] print[li.pop[]] # 8
6 để xóa một giá trị nằm ở đâu đó ở cuối danh sách - sử dụng
li = [3, 5, 7, 2, 6, 4, 8] print[li.pop[]] # 8
6 hoặc del cho các trường hợp khác
Để 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
- Một trong những kỹ năng được tìm kiếm nhiều nhất trên Fiverr và Upwork là tìm kiếm trang web. Không phạm lỗi. trích xuất dữ liệu theo chương trình từ các trang web là một kỹ năng sống quan trọng trong thế giới ngày nay được định hình bởi web và công việc từ xa
- Vì vậy, bạn có muốn thành thạo nghệ thuật quét web bằng BeautifulSoup của Python không?
- Nếu câu trả lời là có – khóa học này sẽ đưa bạn từ người mới bắt đầu đến chuyên gia về Quét web
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