Lấy tập con

Python SELF VI
Mức độ , Bài học
Có sẵn

4.1 Lấy tập con theo quy tắc

Tập con là tập hợp mà tất cả phần tử của nó nằm trong một tập hợp lớn hơn. Trong Python, có một số phương pháp và toán tử tích hợp để làm việc với tập con. Dưới đây, mình sẽ chỉ bạn cách lấy tập con, cách kiểm tra xem một tập hợp có phải là tập con của tập hợp khác không, và cách sử dụng những kiến thức này trong các tình huống khác nhau.

Sử dụng vòng lặp for

Bạn có thể tạo một tập hợp rỗng và thêm vào các phần tử thỏa mãn điều kiện bằng cách sử dụng vòng lặp for.


my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = set()
            
for x in my_set:
    if x % 2 == 0:
        even_set.add(x)
            
print(even_set)  # Kết quả: {2, 4, 6, 8, 10}
        

Đây là cách đơn giản và rõ ràng nhất để tạo tập con. Nhưng còn có một số cách khác gọn hơn nữa.

Sử dụng hàm filter()

Hàm filter() áp dụng một hàm cho từng phần tử và chỉ trả về những phần tử mà hàm trả về True. Kết quả cần được chuyển đổi về dạng tập hợp.


my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = set(filter(lambda x: x % 2 == 0, my_set))
print(even_set)  # Kết quả: {2, 4, 6, 8, 10}
        

Bên trong hàm filter() sử dụng biểu thức lambda – cách ngắn gọn để đặt một hàm phụ hoặc quy tắc lọc. Về lambda mình sẽ nói thêm sau vài bài giảng nữa.

4.2 Sử dụng generators cho tập hợp

Nhớ List Comprehension chứ? Khi ta đặt trong ngoặc vuông cách nhanh chóng để tạo ra danh sách và các phần tử của nó? Công cụ cú pháp này có dạng như sau:


[biểu thức for biến in dãy tuần tự]

Ở đâu:

  • biến — định danh của một biến nào đó,
  • dãy tuần tự — dãy giá trị mà biến đó nhận (có thể là danh sách, chuỗi hoặc đối tượng nhận từ hàm range),
  • biểu thức — một số biểu thức, thường phụ thuộc vào biến sử dụng trong generator, mà sẽ được điền vào các phần tử của danh sách.

Với tập hợp có hàm tương tự, nhưng cần dùng ngoặc nhọn:


{biểu thức for biến in dãy tuần tự}

Generators cho tập hợp cho phép dễ dàng và ngắn gọn tạo ra các tập hợp mới dựa trên tập hợp có sẵn, áp dụng các điều kiện lọc.

Như vầy có thể chọn chỉ các phần tử chẵn từ tập hợp:


my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = {x for x in my_set if x % 2 == 0} 
print(even_set)  # Kết quả: {2, 4, 6, 8, 10} 

Còn đây là chỉ các chuỗi:


my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, "apple", "banana"}
even_set = {x for x in my_set if type(x) == str}
print(even_set)  # Kết quả: {"apple", "banana"}

4.3 Kiểm tra sự có mặt của phần tử

Một trong những thao tác chính có thể thực hiện với tập hợp là kiểm tra sự có mặt của phần tử trong tập hợp. Trong Python có một số cách để làm điều này. Hãy xem xét các phương pháp khác nhau để kiểm tra xem phần tử có mặt trong tập hợp hay không.

Sử dụng toán tử in

Cách phổ biến và tiện lợi nhất để kiểm tra sự có mặt của phần tử trong tập hợp là sử dụng toán tử in. Phương pháp này trả về True nếu phần tử có mặt trong tập hợp, và False nếu không.


my_set = {1, 2, 3, 4, 5}
print(3 in my_set)  # Kết quả: True
print(6 in my_set)  # Kết quả: False
            

Sử dụng toán tử not in

Toán tử not in là đối diện của toán tử in và sử dụng để kiểm tra xem phần tử không có mặt trong tập hợp. Nó trả về True nếu phần tử không có trong tập hợp, và False nếu có.


my_set = {1, 2, 3, 4, 5}
print(6 not in my_set)  # Kết quả: True
print(3 not in my_set)  # Kết quả: False

Sử dụng vòng lặp

Mặc dù việc sử dụng vòng lặp để kiểm tra sự có mặt của phần tử trong tập hợp không phải là cách hiệu quả nhất, nhưng nó có thể hữu ích trong các tình huống mà bạn làm việc với các cấu trúc dữ liệu phức tạp hơn hoặc thực hiện các thao tác bổ sung.


my_set = {1, 2, 3, 4, 5}
element = 3
found = False
            
for item in my_set:
    if item == element:
        found = True
        break
            
print(found)  # Kết quả: True
        

4.4 Kiểm tra tính lồng ghép của tập hợp

Python cung cấp toán tử <=phương thức issubset() để kiểm tra xem một tập hợp có phải là tập con của tập hợp khác không.

Sử dụng toán tử <=

Toán tử <= cho phép dễ dàng kiểm tra xem một tập hợp có phải là tập con của tập hợp khác không.


set_a = {1, 2, 3}
set_b = {1, 2, 3, 4, 5}
            
print(set_a <= set_b)  # Kết quả: True
print(set_b <= set_a)  # Kết quả: False
            
        

Sử dụng phương thức issubset()

Phương thức issubset() thực hiện cùng chức năng như toán tử <= và trả về True, nếu tất cả phần tử của một tập hợp nằm trong tập hợp khác.


set_a = {1, 2, 3}
set_b = {1, 2, 3, 4, 5}
            
print(set_a.issubset(set_b))  # Kết quả: True
print(set_b.issubset(set_a))  # Kết quả: False
        

Kiểm tra trên tập hợp cha

Tương tự như tập con, bạn có thể kiểm tra xem một tập hợp có phải là tập hợp cha của tập hợp khác hay không, bằng cách sử dụng toán tử >=phương thức issuperset().

Sử dụng toán tử >=


set_a = {1, 2, 3, 4, 5}
set_b = {1, 2, 3}
            
print(set_a >= set_b)  # Kết quả: True
print(set_b >= set_a)  # Kết quả: False
            
        

Sử dụng phương thức issuperset()


set_a = {1, 2, 3, 4, 5}
set_b = {1, 2, 3}
            
print(set_a.issuperset(set_b))  # Kết quả: True
print(set_b.issuperset(set_a))  # Kết quả: False
            
        
2
Nhiệm vụ
Python SELF VI, mức độ, bài học
Đã khóa
Rõ ràng nhưng ngẫu nhiên
Rõ ràng nhưng ngẫu nhiên
2
Nhiệm vụ
Python SELF VI, mức độ, bài học
Đã khóa
Trình tạo số bình phương
Trình tạo số bình phương
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION