Set trong Python không chỉ là một kiểu dữ liệu, mà còn là công cụ đắc lực giúp bạn giải quyết nhiều bài toán lập trình một cách hiệu quả. Trong bài viết này, mình sẽ cùng bạn thực hành một số bài tập về set trong Python điển hình. Qua đó, bạn sẽ hiểu rõ cách áp dụng set để đơn giản hóa code và tối ưu hóa thuật toán.
Các điểm chính
Đọc xong bài viết, bạn sẽ:
- Nắm cách tìm phần tử chung giữa hai list: Biết cách dùng set để giải bài tập tìm giao điểm một cách nhanh chóng.
- Kiểm tra subset dễ dàng: Hiểu cách xác định một set có phải là tập con của set khác hay không qua bài tập thực tế.
- Lấy danh sách phần tử duy nhất: Thành thạo việc dùng set để loại bỏ trùng lặp từ một list chỉ trong vài bước.
- Rèn kỹ năng lập trình thực tế: Các bài tập đơn giản, dễ hiểu giúp bạn áp dụng kiến thức về set ngay lập tức.
- Biết đến Vietnix – Nhà cung cấp dịch vụ VPS chuyên nghiệp và tốc độ cao tại Việt Nam.
Bài tập về set trong Python – Tìm các phần tử chung trong hai List
Chương trình Python sau đây tìm các phần tử chung trong hai List (danh sách) với sự hỗ trợ của các phép toán trên Set:
l1 = [1, 2, 3, 4, 5]
l2 = [4, 5, 6, 7, 8]
s1 = set(l1)
s2 = set(l2)
commons = s1 & s2 # Hoặc s1.intersection(s2)
commonlist = list(commons)
print(commonlist)
Khi chạy đoạn code trên, màn hình sẽ hiển thị kết quả:
[4, 5]
Giải thích:
- Khai báo List: Hai List
l1
vàl2
được khởi tạo với các giá trị số nguyên khác nhau. - Chuyển đổi thành Set: Các List
l1
vàl2
được chuyển đổi thành các Sets1
vàs2
bằng cách sử dụng hàmset()
. - Tìm phần tử chung:
Toán tử & (phép giao)
: được sử dụng để tìm các phần tử chung giữas1
vàs2
. Kết quả được gán cho biếncommons
(vẫn là một Set).# Hoặc s1.intersection(s2)
: cho thấy một cách khác để tìm phần tử chung là sử dụng phương thức của set trong Python, cụ thểintersection()
, cách này cũng tìm các phần tử giao giữas1
vàs2
.
- Chuyển về List: Set
commons
chứa các phần tử chung được chuyển trở lại thành một List bằng hàmlist()
. Kết quả được gán cho biếncommonlist
. - In kết quả: List
commonlist
(chứa các phần tử chung) được in ra màn hình.
Bài tập về set trong Python – Kiểm tra một set có phải là subset
Viết chương trình Python để kiểm tra xem một set có phải là tập con của một set khác hay không.
s1 = {1, 2, 3, 4, 5}
s2 = {4, 5}
if s2.issubset(s1):
print("s2 là tập con của s1")
else:
print("s2 không phải là tập con của s1")
Kết quả khi chạy code:
s2 là tập con của s1
Giải thích chi tiết:
- Khai báo Set:
s1 = {1, 2, 3, 4, 5}
: Tạo một sets1
chứa các số nguyên từ 1 đến 5.s2 = {4, 5}
: Tạo một sets2
chứa hai số nguyên là 4 và 5.- Kiểm tra tập con (Sử dụng phương thức của Set trong Python):
s2.issubset(s1)
: Đây là phần quan trọng. Đoạn mã này sử dụng phương thức của Set trong Python làissubset()
. Phương thứcissubset()
kiểm tra xem tất cả các phần tử củas2
có nằm trongs1
hay không. Nếu tất cả các phần tử của set này (s2
) đều có mặt trong set kia (s1
), phương thức sẽ trả vềTrue
; ngược lại, trả vềFalse
.- In kết quả:
- Vòng
if/else
: kiểm tra kết quả trả về từs2.issubset(s1)
. NếuTrue
, chương trình in ra “s2 là tập con của s1”. Ngược lại, chương trình in ra “s2 không phải là tập con của s1”.
Lưu ý: Khai báo List: Hai List l1 và l2 được khởi tạo với các giá trị số nguyên khác nhau.
Bài tập về set trong Python – Lấy danh sách phần tử duy nhất từ một list
Viết chương trình Python để lấy ra một danh sách các phần tử duy nhất (không trùng lặp) từ một list cho trước.
T1 = (1, 9, 1, 6, 3, 4, 5, 1, 1, 2, 5, 6, 7, 8, 9, 2)
s1 = set(T1)
print(s1)
Kết quả khi chạy:
{1, 2, 3, 4, 5, 6, 7, 8, 9}
Giải thích từng bước:
- Tạo Tuple:
T1 = (1, 9, 1, 6, 3, 4, 5, 1, 1, 2, 5, 6, 7, 8, 9, 2)
: Dòng này tạo một Tuple tên làT1
, chứa nhiều số nguyên, trong đó có những số lặp lại.- Chuyển đổi Tuple thành Set:
s1 = set(T1)
: Đây là điểm mấu chốt. Dòng code này tạo một Set mới tên làs1
từ TupleT1
. Trong Python, Set có một đặc điểm quan trọng: Set chỉ chứa các phần tử duy nhất. Khi chuyểnT1
thành Set, các phần tử trùng lặp tự động bị loại bỏ.- In kết quả:
print(s1)
: In Sets1
ra màn hình. Kết quả sẽ là một tập hợp chỉ chứa các phần tử duy nhất từT1
, không còn phần tử nào trùng lặp.
Vietnix – Nhà cung cấp dịch vụ VPS chuyên nghiệp và tốc độ cao tại Việt Nam
Với hơn 12 năm kinh nghiệm và phục vụ hàng chục ngàn khách hàng, Vietnix mang đến dịch vụ thuê VPS đa dạng, đáng tin cậy. Dịch vụ VPS nổi bật với khả năng tải trang nhanh chóng và tốc độ vượt trội, giúp nâng cao trải nghiệm người dùng, từ đó thúc đẩy doanh số bán hàng. Bên cạnh đó, Vietnix cung cấp các tiện ích như sao lưu dữ liệu tự động miễn phí hàng tuần, dễ dàng khôi phục dữ liệu và quản lý máy chủ linh hoạt qua giao diện Portal đa năng, hỗ trợ nhiều hệ điều hành và cho phép người dùng tự chủ động cài đặt, theo dõi tài nguyên.
Đối với dịch vụ VPS AMD, điểm nhấn chính là khả năng vận hành website mượt mà, hướng tới việc tăng chuyển đổi và thúc đẩy doanh thu. Sức mạnh từ ổ cứng NVMe Enterprise siêu tốc giúp tăng tốc độ truy cập dữ liệu, kết hợp cùng CPU AMD EPYC mạnh mẽ, VPS AMD đảm bảo khả năng xử lý vượt trội, đáp ứng mọi yêu cầu về hiệu năng. VPS AMD cũng được trang bị tốc độ mạng 200 Mbps trong nước và 20 Mbps quốc tế, mang lại trải nghiệm truy cập nhanh chóng cho người dùng.
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Vậy là chúng ta đã cùng nhau khám phá các bài tập thú vị về set trong Python, từ tìm phần tử chung giữa các list, kiểm tra tập con, đến việc lọc ra các phần tử duy nhất. Hy vọng rằng những kiến thức và bài tập này sẽ giúp bạn củng cố kỹ năng làm việc với set, một cấu trúc dữ liệu vô cùng hữu ích trong Python.
Mọi người cũng đọc