1. Nối hai Set trong Python
Có một số cách để nối hai hoặc nhiều Set trong Python. Bạn có thể sử dụng phương thức union() để trả về một Set mới chứa tất cả các phần tử cả hai Set
Ngoài ra cũng có thể sử dụng phương thức update() để nối tất cả các phần tử của Set này vào trong một Set khác.
# Khai bao setA va setB setA = {"oto", "xe may", "may bay", "tau dien", "xe dap"} setB = {"tau ngam", "xe hoi", "tau hoa", "truc thang"} # Hien thi setA ban dau print("SetA ban dau") print(setA) # Hien thi setB print("SetB ban dau") print(setB) # Noi hai setA va setB bang phuong thuc union() setC = setA.union(setB) # Hien thi setC la tap hop cua setA va setB print("Set sau khi noi la") print(setC)
Kết quả:
SetA ban dau {‘may bay’, ‘xe dap’, ‘oto’, ‘xe may’, ‘tau dien’} SetB ban dau {‘tau hoa’, ‘tau ngam’, ‘xe hoi’, ‘truc thang’} Set sau khi noi la {‘may bay’, ‘truc thang’, ‘xe dap’, ‘oto’, ‘xe hoi’, ‘xe may’, ‘tau dien’, ‘tau ngam’, ‘tau hoa’} |
Sử dụng tương tự với phương thức update() để hợp nhất (hay nối) tất cả các phần tử của setB vào trong setA như sau:
# Khai bao setA va setB setA = {"oto", "xe may", "may bay", "tau dien", "xe dap"} setB = {"tau ngam", "xe hoi", "tau hoa", "truc thang"} # Hien thi setA ban dau print("SetA ban dau") print(setA) # Hien thi setB print("SetB ban dau") print(setB) # Su dung phuong thuc update() de noi setB vao setA setA.update(setB) # Hien thi ket qua setA sau khi noi setB print("SetA sau khi noi them SetB ") print(setA)
Kết quả:
SetA ban dau {‘xe dap’, ‘tau dien’, ‘xe may’, ‘may bay’, ‘oto’} SetB ban dau {‘truc thang’, ‘tau hoa’, ‘tau ngam’, ‘xe hoi’} SetA sau khi noi them SetB {‘xe dap’, ‘tau dien’, ‘tau ngam’, ‘xe may’, ‘may bay’, ‘tau hoa’, ‘oto’, ‘truc thang’, ‘xe hoi’} |
2. Lấy các phần tử chung của hai Set trong Python
Ở phần trên, khi sử dụng phương thức update() và union() ta nhận được một Set mới chính là một bộ được hợp nhất và các giá trị có cả trong Set A và SetB.
Trong phần này, chúng ta sẽ cùng nhau sử dụng phương thức intersection_update() để nối hai SetA và SetB tuy nhiên chỉ giữ lại các phần tử có chung trong cả hai Set A và Set B.
# Khai bao setA va setB setA = {"oto", "xe may", "may bay", "tau dien", "xe dap"} setB = {"xe dap", "tau ngam", "xe hoi", "tau hoa", "truc thang"} # Hien thi setA ban dau print("SetA ban dau") print(setA) # Hien thi setB print("SetB ban dau") print(setB) # Su dung phuong thuc intersection_update() de lay ra cac phan tu chung cua 2 set setA.intersection_update(setB) # Hien thi ket qua setA sau khi noi setB va lay ra cac phan tu chung cua 2 set print("Phan tu chung cua hai set ") print(setA)
Kết quả:
SetA ban dau {‘oto’, ‘xe dap’, ‘tau dien’, ‘xe may’, ‘may bay’} SetB ban dau {‘tau ngam’, ‘xe dap’, ‘truc thang’, ‘xe hoi’, ‘tau hoa’} Phan tu chung cua hai set {‘xe dap’} |
Ở ví dụ trên, phần tử “xe dap” là phần tử chung của hai set A và set B. Vì vậy kết quả được trả về sẽ là {'xe dap'}
3. Loại bỏ các phần tử chung của hai Set trong Python
Ngược lại với việc nối hai Set và chọn ra những phần tử có chung trong cả hai Set A và SetB thì ta cũng có thể nối hai Set và chỉ lấy những phần từ khác biệt có trong cả hai Set.
Để làm được việc này, ta cần sử dụng phương thức symmetric_difference() có sẵn trong Python để trả về một tập hợp Set mới, chỉ chứa các phần từ KHÔNG là phần tử chung của cả hai Set.
# Khai bao setA va setB setA = {"oto", "xe may", "may bay", "tau dien", "xe dap"} setB = {"xe dap", "tau ngam", "xe hoi", "tau hoa", "truc thang"} # Hien thi setA ban dau print("SetA ban dau") print(setA) # Hien thi setB print("SetB ban dau") print(setB) # Su dung phuong thuc symmetric_difference() de lay ra cac phan tu KHONG chung trong 2 set setA.symmetric_difference_update(setB) # Hien thi ket qua setA sau khi noi setB va lay ra cac phan tu KHONG chung cua 2 set print("Phan tu KHONG chung cua hai set ") print(setA)
Kết quả:
SetA ban dau {‘oto’, ‘may bay’, ‘xe may’, ‘tau dien’, ‘xe dap’} SetB ban dau {‘tau hoa’, ‘tau ngam’, ‘xe hoi’, ‘truc thang’, ‘xe dap’} Phan tu KHONG chung cua hai set {‘tau hoa’, ‘oto’, ‘tau ngam’, ‘may bay’, ‘xe hoi’, ‘truc thang’, ‘xe may’, ‘tau dien’} |
Ở ví dụ trên, phần tử “xe dap” là phần tử chung của hai set A và set B. Vì vậy phần tử này sẽ bị loại ra khỏi kết quả khi thực hiện join giữa hai Set.