Loại bỏ so với loại bỏ Python

Các phương thức tập hợp của Python discard[] và remove[] được sử dụng để xóa mục đã chỉ định khỏi tập hợp. Sự khác biệt giữa set discard và remove là phương thức remove[] sẽ báo lỗi nếu mục được chỉ định không tồn tại và phương thức discard[] sẽ không

.remove[] là trường hợp chung cho phép nhà phát triển kiểm soát ngoại lệ và .discard[] chỉ là trường hợp sử dụng đặc biệt mà nhà phát triển không cần phải nắm bắt hành vi đó

Bạn có thể sử dụng phương thức loại bỏ nếu bạn không muốn bắt ValueError do một thứ khác với các khối thử ngoại trừ

Bộ Python loại bỏ vs loại bỏ

Mã ví dụ đơn giản

s = {'Alice', 'Bob', 'Cloe'}

s.discard['Bob']

# Bob value already discard
print[s.discard['Bob']]
print[s]

# trying to remove Bob
s.remove['Bob']

đầu ra

Hãy bình luận nếu bạn có bất kỳ nghi ngờ hoặc đề xuất nào về chủ đề so sánh phương pháp Python này

Ghi chú. IDE. PyCharm 2021. 3. 3 [Phiên bản cộng đồng]

cửa sổ 10

Trăn 3. 10. 1

Tất cả các Ví dụ về Python đều nằm trong Python 3, vì vậy có thể nó khác với python 2 hoặc các phiên bản nâng cấp

Rohit

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

Phương thức set.discard[x] của Python loại bỏ một phần tử x khỏi tập hợp này nếu nó là thành viên. Nếu không thì không làm gì cả

Python Set discard[] - Ví dụ, Giải thích, Thời gian chạy


Xem video này trên YouTube

Đây là một ví dụ tối thiểu trong đó bạn loại bỏ phần tử chuỗi 'Bob' khỏi tập hợp bằng phương thức

set.discard[element]
0

>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.discard['Bob']
>>> s
{'Alice', 'Cloe'}

cú pháp

Hãy “đi sâu” vào cú pháp chính thức của phương thức

set.discard[element]
1

set.discard[element]
Đối số Kiểu dữ liệuGiải thích
set.discard[element]
2đối tượng có thể băm Phần tử sẽ bị xóa khỏi tập hợp nếu nó tồn tại

Giá trị trả về của tập hợp. loại bỏ[]

Giá trị trả về của

set.discard[element]
1 là
set.discard[element]
4

bố trí. loại bỏ [] so với thiết lập. gỡ bỏ[]

Phương pháp

set.discard[element]
1 tương tự như phương pháp
set.discard[element]
6. Cả hai phương thức đều lấy một phần tử cần loại bỏ làm đối số và loại bỏ phần tử này khỏi tập hợp mà chúng được gọi. Nếu phần tử bị xóa tồn tại trong tập hợp, các phương thức có cùng hành vi

?

Kết quả là, không có gì xấu xảy ra nếu bạn loại bỏ cùng một yếu tố hai lần

>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.discard['Bob']
>>> s.discard['Bob']
>>> s
{'Alice', 'Cloe'}

Tuy nhiên, nếu bạn loại bỏ cùng một phần tử hai lần, Python sẽ tăng

>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.discard['Bob']
>>> s.discard['Bob']
>>> s
{'Alice', 'Cloe'}
1 ngay khi phần tử không còn là thành viên của tập hợp nữa

>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.remove['Bob']
>>> s.remove['Bob']
Traceback [most recent call last]:
  File "", line 1, in 
    s.remove['Bob']
KeyError: 'Bob'

Trong hầu hết các trường hợp, bạn không muốn hành vi này, đó là lý do tại sao tôi khuyên bạn nên sử dụng phương pháp

>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.discard['Bob']
>>> s.discard['Bob']
>>> s
{'Alice', 'Cloe'}
3 theo mặc định để xóa các phần tử khỏi tập hợp thay vì thực hiện logic thử/ngoại trừ phức tạp hơn để xử lý lỗi

Bộ Python Loại bỏ nhiều phần tử

Xây dựng vấn đề. Đưa ra một tập hợp và một phần tử có thể lặp lại mà bạn muốn xóa khỏi tập hợp. Nhưng bạn không muốn Python phát sinh lỗi nếu không có phần tử set. Nói cách khác, làm cách nào để loại bỏ nhiều phần tử khỏi tập hợp?

? . Phương pháp này loại bỏ tất cả các phần tử cũng là thành viên của tập hợp. Nếu không có phần tử nào là thành viên, phương thức sẽ không làm gì cả

Đây là một ví dụ về phương pháp

>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.discard['Bob']
>>> s.discard['Bob']
>>> s
{'Alice', 'Cloe'}
5 để loại bỏ nhiều phần tử

>>> s = {1, 2, 3, 'Alice', 'Bob', 'Carl'}
>>> to_remove = {1, 'Alice', 'Bob'}
>>> s.difference_update[to_remove]
>>> s
{2, 3, 'Carl'}

Tôi thấy phương pháp này vượt trội hơn so với việc lặp qua tất cả các phần tử cần loại bỏ vì nó ngắn gọn hơn

>>> s = {1, 2, 3, 'Alice', 'Bob', 'Carl'}
>>> to_remove = {1, 'Alice', 'Bob'}
>>> for element in to_remove:
	s.discard[element]

	
>>> s
{2, 3, 'Carl'}

Độ phức tạp thời gian của tập hợp là gì. loại bỏ[]?

Độ phức tạp thời gian chạy của hàm

set.discard[element]
1 trên một tập hợp có n phần tử là O[1]. Vì vậy, phương thức
set.discard[element]
1 của Python có độ phức tạp thời gian chạy liên tục. Lý do là tư cách thành viên của tập hợp có độ phức tạp thời gian chạy liên tục do triển khai bảng băm—và với phần tử được đề cập, chúng ta có thể dễ dàng xóa nó khỏi tập hợp mà không cần xem xét tất cả các phần tử trong tập hợp

Bạn có thể thấy điều này trong thử nghiệm đơn giản sau đây, nơi chúng tôi chạy phương thức tập hợp nhiều lần để tăng số lượng phần tử tập hợp

Nhân vật. Thời gian chạy [trục y] không phụ thuộc vào số phần tử đã đặt [trục x], do đó,
set.discard[element]
1 có độ phức tạp thời gian chạy không đổi

Tôi đã chạy thử nghiệm này trên máy tính xách tay Acer Aspire 5 [tôi biết] với bộ xử lý Intel Core i7 [Thế hệ thứ 8] và bộ nhớ 16GB. Đây là mã của thử nghiệm

import matplotlib.pyplot as plt
import time

sizes = [i * 10**5 for i in range[50]]
runtimes = []

for size in sizes:
    s = set[range[size]]

    # Start track time ...
    t1 = time.time[]
    s.discard[size-99]
    t2 = time.time[]
    # .. end track time
    
    runtimes.append[t2-t1]


plt.plot[sizes, runtimes]
plt.ylabel['Runtime [s]']
plt.xlabel['Set Size']

plt.show[]

Các phương thức đặt Python khác

Tất cả các phương thức tập hợp được gọi trên một tập hợp nhất định. Ví dụ: nếu bạn đã tạo tập hợp

>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.discard['Bob']
>>> s.discard['Bob']
>>> s
{'Alice', 'Cloe'}
9, bạn sẽ gọi
>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.remove['Bob']
>>> s.remove['Bob']
Traceback [most recent call last]:
  File "", line 1, in 
    s.remove['Bob']
KeyError: 'Bob'
0 để xóa tất cả các phần tử của tập hợp. Chúng tôi sử dụng thuật ngữ “tập hợp này” để chỉ tập hợp mà phương thức được thực thi

>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.remove['Bob']
>>> s.remove['Bob']
Traceback [most recent call last]:
  File "", line 1, in 
    s.remove['Bob']
KeyError: 'Bob'
1Thêm một phần tử vào tập hợp này_______17_______2Xóa tất cả các phần tử khỏi tập hợp này_______17_______3Tạo và trả lại một bản sao phẳng của tập hợp này
>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.remove['Bob']
>>> s.remove['Bob']
Traceback [most recent call last]:
  File "", line 1, in 
    s.remove['Bob']
KeyError: 'Bob'
4Tạo và trả lại một tập hợp mới chứa tất cả các phần tử của tập hợp này ngoại trừ những phần tử trong các đối số tập hợp đã cho. Tập hợp kết quả có nhiều nhất nhiều phần tử như bất kỳ tập hợp nào khác.
>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.remove['Bob']
>>> s.remove['Bob']
Traceback [most recent call last]:
  File "", line 1, in 
    s.remove['Bob']
KeyError: 'Bob'
5Xóa tất cả các phần tử khỏi tập hợp này là thành viên của bất kỳ đối số nào của tập hợp đã cho.
>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.remove['Bob']
>>> s.remove['Bob']
Traceback [most recent call last]:
  File "", line 1, in 
    s.remove['Bob']
KeyError: 'Bob'
6Xóa một phần tử khỏi tập hợp này nếu nó là thành viên, nếu không thì không làm gì cả.
>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.remove['Bob']
>>> s.remove['Bob']
Traceback [most recent call last]:
  File "", line 1, in 
    s.remove['Bob']
KeyError: 'Bob'
7Tạo và trả về một tập hợp mới chứa tất cả các phần tử là thành viên của tất cả các tập hợp. cái này và cả cái được chỉ định. .
>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.remove['Bob']
>>> s.remove['Bob']
Traceback [most recent call last]:
  File "", line 1, in 
    s.remove['Bob']
KeyError: 'Bob'
8Xóa tất cả các phần tử khỏi tập hợp này mà không phải là thành viên trong tất cả các tập hợp được chỉ định khác.
>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.remove['Bob']
>>> s.remove['Bob']
Traceback [most recent call last]:
  File "", line 1, in 
    s.remove['Bob']
KeyError: 'Bob'
9Trả lại
>>> s = {1, 2, 3, 'Alice', 'Bob', 'Carl'}
>>> to_remove = {1, 'Alice', 'Bob'}
>>> s.difference_update[to_remove]
>>> s
{2, 3, 'Carl'}
0 nếu không có phần tử nào từ tập hợp này là thành viên của bất kỳ tập hợp cụ thể nào khác. Các tập hợp là rời nhau khi và chỉ khi giao của chúng là tập hợp rỗng.
>>> s = {1, 2, 3, 'Alice', 'Bob', 'Carl'}
>>> to_remove = {1, 'Alice', 'Bob'}
>>> s.difference_update[to_remove]
>>> s
{2, 3, 'Carl'}
1Trả lại
>>> s = {1, 2, 3, 'Alice', 'Bob', 'Carl'}
>>> to_remove = {1, 'Alice', 'Bob'}
>>> s.difference_update[to_remove]
>>> s
{2, 3, 'Carl'}
0 nếu tất cả các phần tử của tập hợp này là thành viên của đối số tập hợp đã chỉ định.
>>> s = {1, 2, 3, 'Alice', 'Bob', 'Carl'}
>>> to_remove = {1, 'Alice', 'Bob'}
>>> s.difference_update[to_remove]
>>> s
{2, 3, 'Carl'}
3Trả về
>>> s = {1, 2, 3, 'Alice', 'Bob', 'Carl'}
>>> to_remove = {1, 'Alice', 'Bob'}
>>> s.difference_update[to_remove]
>>> s
{2, 3, 'Carl'}
0 nếu tất cả các phần tử của đối số tập hợp đã chỉ định là thành viên của tập hợp này.
>>> s = {1, 2, 3, 'Alice', 'Bob', 'Carl'}
>>> to_remove = {1, 'Alice', 'Bob'}
>>> s.difference_update[to_remove]
>>> s
{2, 3, 'Carl'}
5Xóa và trả lại một phần tử ngẫu nhiên khỏi tập hợp này. Nếu tập hợp trống, nó sẽ tăng
>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.discard['Bob']
>>> s.discard['Bob']
>>> s
{'Alice', 'Cloe'}
1.
>>> s = {1, 2, 3, 'Alice', 'Bob', 'Carl'}
>>> to_remove = {1, 'Alice', 'Bob'}
>>> s.difference_update[to_remove]
>>> s
{2, 3, 'Carl'}
7Xóa và trả về một phần tử cụ thể khỏi tập hợp này như được xác định trong đối số. Nếu tập hợp không chứa phần tử, nó sẽ tăng
>>> s = {'Alice', 'Bob', 'Cloe'}
>>> s.discard['Bob']
>>> s.discard['Bob']
>>> s
{'Alice', 'Cloe'}
1.
>>> s = {1, 2, 3, 'Alice', 'Bob', 'Carl'}
>>> to_remove = {1, 'Alice', 'Bob'}
>>> s.difference_update[to_remove]
>>> s
{2, 3, 'Carl'}
9Trả về một tập hợp mới có các phần tử trong tập hợp này hoặc đối số tập hợp đã chỉ định, nhưng không phải các phần tử là thành viên của cả hai.
>>> s = {1, 2, 3, 'Alice', 'Bob', 'Carl'}
>>> to_remove = {1, 'Alice', 'Bob'}
>>> for element in to_remove:
	s.discard[element]

	
>>> s
{2, 3, 'Carl'}
0Thay thế bộ này bằng sự khác biệt đối xứng, tôi. e. , các phần tử trong tập hợp này hoặc đối số tập hợp đã chỉ định, nhưng không phải các phần tử là thành viên của cả hai.
>>> s = {1, 2, 3, 'Alice', 'Bob', 'Carl'}
>>> to_remove = {1, 'Alice', 'Bob'}
>>> for element in to_remove:
	s.discard[element]

	
>>> s
{2, 3, 'Carl'}
1Tạo và trả về một tập hợp mới với tất cả các phần tử có trong tập hợp này hoặc trong bất kỳ đối số tập hợp nào đã chỉ định.
>>> s = {1, 2, 3, 'Alice', 'Bob', 'Carl'}
>>> to_remove = {1, 'Alice', 'Bob'}
>>> for element in to_remove:
	s.discard[element]

	
>>> s
{2, 3, 'Carl'}
2Cập nhật tập hợp này với tất cả các phần tử có trong tập hợp này hoặc trong bất kỳ đối số nào của tập hợp đã chỉ định. Tập hợp kết quả có ít nhất nhiều phần tử như bất kỳ tập hợp nào khác

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Lệnh discard[] được sử dụng trong cấu trúc Python nào?

Phương thức tích hợp sẵn, discard[] trong Python, chỉ xóa phần tử khỏi tập hợp nếu phần tử đó có trong tập hợp . Nếu phần tử không có trong tập hợp, thì không có lỗi hoặc ngoại lệ nào được nêu ra và tập hợp ban đầu được in.

Có chức năng xóa trong Python không?

Phương thức remove[] - Tổng quan về cú pháp . Phương thức remove[] xóa một mục khỏi danh sách theo giá trị của nó chứ không phải theo số chỉ mục của nó. The remove[] method is one of the ways you can remove elements from a list in Python. The remove[] method removes an item from a list by its value and not by its index number.

Từ khóa nào sau đây được dùng để loại bỏ trong một tập hợp?

Phương thức remove[] xóa phần tử đã chỉ định khỏi tập hợp.

Chủ Đề