Thông thường, khi làm việc với dữ liệu, bạn sẽ muốn lưu trữ danh sách dữ liệu không được chứa bất kỳ giá trị trùng lặp nào và không thể thay đổi giá trị của chúng. Ví dụ:nếu bạn đang tạo danh sách các ID mua hàng tại một cửa hàng tạp hóa, bạn sẽ muốn mỗi ID là duy nhất và bạn sẽ không muốn bất kỳ ai có thể thay đổi các giá trị trong danh sách của mình.
Đó là nơi xuất hiện đối tượng tập hợp Python. Tập hợp là một tập hợp các mục không có thứ tự chỉ có thể chứa các giá trị duy nhất.
Hướng dẫn này sẽ thảo luận, có tham chiếu đến các ví dụ, khái niệm cơ bản về tập hợp Python và cách bạn có thể thực hiện các thao tác phổ biến như thêm và xóa giá trị trên một tập hợp.
Bộ Python
Cấu trúc dữ liệu tập hợp tích hợp sẵn trong Python tương tự như ý tưởng về tập hợp trong toán học.
Tập hợp Python có thể chứa không hoặc nhiều phần tử và không có thứ tự xác định cho mỗi phần tử trong tập hợp. Mọi phần tử được lưu trữ trong một tập hợp là duy nhất, do đó, không có bản sao nào có thể tồn tại và mỗi giá trị riêng lẻ trong tập hợp không thể thay đổi.
Mặc dù không thể thay đổi các giá trị riêng lẻ trong một tập hợp, nhưng bản thân tập hợp đó có thể như vậy. Điều này có nghĩa là chúng tôi có thể thêm hoặc xóa các mục khỏi tập hợp của mình.
Cấu trúc tập hợp rất hữu ích vì nó đi kèm với một số phép toán mà chúng ta có thể sử dụng để làm việc với dữ liệu mà chúng ta đã lưu trữ trong một tập hợp.
Tạo bộ Python
Trong Python, tập hợp được định nghĩa là danh sách các mục (hoặc “phần tử”) được phân tách bằng dấu phẩy. Sau đó, danh sách được đặt trong dấu ngoặc nhọn ({}).
81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.
Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.
Tập hợp Python có thể lưu trữ bất kỳ số lượng mục nào và mỗi mục trong một tập hợp có thể sử dụng các kiểu dữ liệu khác nhau. Vì vậy, một tập hợp có thể lưu trữ cả một số nguyên hoặc một chuỗi hoặc một chuỗi, float và một tuple. Tuy nhiên, tập hợp không thể lưu trữ các kiểu dữ liệu có thể thay đổi, như một tập hợp khác, từ điển hoặc danh sách.
Giả sử chúng ta muốn tạo một bộ lưu trữ danh sách các bài tập về nhà mà một học sinh đã giao cho một lớp tiếng Anh. Chúng tôi có thể tạo tập hợp này bằng cách sử dụng mã sau:
assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"} print(assignments)
Mã của chúng tôi trả về:
{‘Trang tính số 5’, ‘Trang tính số 4’, ‘Trang tính số 7’, ‘Đánh giá cuối chủ đề # 2’}
Trong mã của chúng tôi, chúng tôi đã xác định một tập hợp được gọi là assignments
có bốn giá trị. Sau đó, chúng tôi in nội dung của nhiệm vụ được đặt ra bảng điều khiển. Bạn có thể thấy rằng các giá trị của chúng tôi được trả về theo thứ tự ngẫu nhiên vì các bộ không lưu trữ các mục của chúng theo bất kỳ thứ tự cụ thể nào.
Thay đổi một tập hợp
Khi bạn đã tạo một tập hợp, bạn không thể thay đổi giá trị của các mục trong tập hợp đó. Tuy nhiên, bạn có thể thêm các mục vào và xóa các mục khỏi một tập hợp.
Thêm các mục vào một tập hợp
Để thêm một phần tử vào một tập hợp Python, bạn có thể sử dụng add()
phương pháp. Giả sử một học sinh vừa nộp Worksheet #8
và chúng tôi muốn cập nhật tập hợp của mình để theo dõi bài tập của học sinh được giao. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:
assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"} assignments.add("Worksheet #8") print(assignments)
Mã của chúng tôi trả về:
{‘Trang tính số 8’, ‘Trang tính số 4’, ‘Trang tính số 5’, ‘Bài đánh giá cuối chủ đề # 2’, ‘Trang tính số 7’}
Như bạn có thể thấy, Worksheet #8
đã được thêm vào bộ của chúng tôi.
Ngoài ra, nếu bạn muốn thêm nhiều mục vào một tập hợp, bạn có thể sử dụng update()
phương pháp. update()
phương thức chấp nhận một danh sách các mục mà bạn muốn thêm vào một tập hợp làm tham số, sau đó thêm các mục đó vào một tập hợp.
Giả sử một học sinh đã nộp cả hai worksheet # 8 và # 9. Chúng tôi có thể thay đổi tập hợp của mình để phản ánh những nhiệm vụ mới này đang được giao bằng cách sử dụng mã này:
assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"} assignments.update(["Worksheet #8", "Worksheet #9"]) print(assignments)
Mã của chúng tôi trả về:
{‘Trang tính số 9’, ‘Bài đánh giá cuối chủ đề số 2’, ‘Trang tính số 8’, ‘Trang tính số 7’, ‘Trang tính số 4’, ‘Trang tính số 5’}
Bây giờ tập hợp của chúng tôi chứa hai giá trị mới:Worksheet #8
và Worksheet #9
.
Xóa các phần tử khỏi một tập hợp
Để xóa một phần tử khỏi một tập hợp, bạn có thể sử dụng discard()
hoặc remove()
.
discard()
hàm xóa một mục khỏi một tập hợp và không trả về gì nếu một mục không tồn tại trong một tập hợp. remove()
hàm sẽ cố gắng xóa một mục khỏi một tập hợp, và nếu mục đó không tồn tại, lỗi sẽ xuất hiện.
Giả sử chúng ta muốn xóa Worksheet #9
từ hồ sơ của chúng tôi về các bài tập về nhà của học sinh vì các em đã được yêu cầu làm lại bài tập. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:
assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'} assignments.discard("Worksheet #9") print(assignments)
Mã của chúng tôi trả về:
{‘Đánh giá cuối chủ đề số 2’, ‘Trang tính số 5’, ‘Trang tính số 4’, ‘Trang tính số 8’, ‘Trang tính số 7’}
Bạn có thể thấy rằng giá trị Worksheet #9
đã bị xóa khỏi tập hợp của chúng tôi. Chúng tôi đã hoàn thành việc này bằng cách sử dụng discard()
phương pháp.
Xóa một tập hợp
Để xóa một tập hợp, bạn có thể sử dụng clear()
phương pháp. Giả sử chúng ta muốn xóa hồ sơ về bài tập của học sinh vì đây là cuối năm và chúng ta không cần lưu trữ thông tin nữa. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:
assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'} assignments.clear() print(assignments)
Mã của chúng tôi trả về:{}. Điều này phản ánh bộ trống của chúng tôi.
Độ dài trả về của một bộ
Để biết có bao nhiêu mục được lưu trữ trong một tập hợp, bạn có thể sử dụng len()
phương pháp.
Giả sử chúng ta muốn tìm xem một học sinh đã giao bao nhiêu bài tập về nhà. Chúng ta có thể làm như vậy bằng cách sử dụng mã này:
assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'} print(len(assignments))
Mã của chúng tôi trả về:6. Trong mã của chúng tôi, trước tiên chúng tôi khai báo một tập hợp được gọi là assignments
. Sau đó, chúng tôi sử dụng len()
để biết có bao nhiêu mục được lưu trữ trong assignments
đặt.
Hoạt động tập hợp Python
Một trong những lợi thế của việc sử dụng tập hợp để lưu trữ dữ liệu là tập hợp hỗ trợ các phép toán tập hợp toán học. Hãy cùng tìm hiểu cách hoạt động của ba trong số các hoạt động tập hợp chính.
Các hoạt động đặt này không thay đổi nội dung của một tập hợp. Thay vào đó, họ thực hiện một phép tính trên một tập hợp hiện có.
Đặt công đoàn
union()
cho phép chúng ta tạo một tập hợp tất cả các phần tử từ hai tập hợp.
Giả sử chúng ta có hai danh sách bài tập của học sinh mà chúng ta muốn kết hợp với nhau. Một danh sách chứa dữ liệu về bài tập về nhà của học sinh và danh sách kia chứa danh sách các bài tập tiểu luận mà học sinh đã hoàn thành. Chúng tôi có thể hợp nhất các danh sách này bằng cách sử dụng mã này:
assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7"} essays = {"Essay #1", "Essay #2"} homework = assignments.union(essays) print(homework)
Mã của chúng tôi trả về:
{‘Trang tính số 7’, ‘Bài luận số 2’, ‘Trang tính số 4’, ‘Bài luận số 1’, ‘Trang tính số 5’}
Trong mã của chúng tôi, chúng tôi sử dụng union()
phương pháp để hợp nhất hai tập hợp của chúng tôi với nhau. Chúng tôi gán giá trị của tập hợp mới được hợp nhất cho biến homework
. Sau đó, chúng tôi in ra giá trị của homework
Biến đổi.
Ngoài ra, chúng tôi có thể đã sử dụng mã sau:
assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7"} essays = {"Essay #1", "Essay #2"} print(assignments | essays)
Dấu "|" toán tử thực hiện một hoạt động tập hợp liên hiệp. Mã của chúng tôi trả về một tập hợp đã hợp nhất:
{‘Bài tiểu luận số 2’, ‘Trang tính số 4’, ‘Trang tính số 5’, ‘Bài luận số 1’, ‘Trang tính số 7’}
Đặt giao lộ
Giao lộ intersection()
cho phép bạn tạo một danh sách các phần tử chung giữa hai tập hợp.
Giả sử chúng ta có một danh sách các bài luận mà một sinh viên đã nộp và một danh sách các bài luận đã được phát hành. Nếu chúng ta muốn biết học sinh chưa nộp bài luận nào, chúng ta có thể thực hiện phương pháp giao điểm.
Đây là mã chúng tôi sẽ sử dụng:
essays_handed_in = {"Essay #1", "Essay #2"} essays_issued = {"Essay #1", "Essay #2", "Essay #3"} due = essays_handed_in.intersection(essays_issued) print(due)
Mã của chúng tôi trả về:
{‘Bài luận số 1’, “Bài luận số 2’}
Trong ví dụ này, chúng tôi sử dụng intersection()
để tìm tất cả các phần tử tồn tại trong cả essays_handed_in
và essays_issued
các bộ. Chúng tôi gán kết quả của phép toán giao nhau cho biến due
, sau đó chúng tôi in ra bảng điều khiển.
Ngoài ra, chúng ta có thể sử dụng &
toán tử để thực hiện một hoạt động giao cắt đã đặt. Vì vậy, nếu chúng ta muốn thực hiện một giao điểm trên hai tập hợp của chúng ta từ trước đó, chúng ta có thể sử dụng mã này:
essays_handed_in = {"Essay #1", "Essay #2"} essays_issued = {"Essay #1", "Essay #2", "Essay #3"} print(essays_handed_in & essays_issued)
Mã của chúng tôi trả về:
{‘Bài luận số 1’, “Bài luận số 2’}
Đặt sự khác biệt
Sự khác biệt intersection()
phương pháp này cho phép bạn tìm ra phần tử nào hiện diện trong một tập hợp mà không có trong tập hợp khác.
Giả sử chúng ta muốn tạo một danh sách tất cả các bài luận mà một sinh viên đã nộp và chưa được chấm điểm. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:
essays_handed_in = {"Essay #1", "Essay #2"} essays_graded = {"Essay #1"} final = essays_handed_in.difference(essays_graded) print(final)
Mã của chúng tôi trả về:
{“Bài luận số 2”}
Trong mã này, chúng tôi đã sử dụng difference()
phương pháp để tìm sự khác biệt giữa essays_handed_in
và essays_graded
các bộ. Ngoài ra, chúng tôi có thể sử dụng -
toán tử, như vậy:
essays_handed_in = {"Essay #1", "Essay #2"} essays_graded = {"Essay #1"} print(essays_handed_in - essays_graded)
Mã của chúng tôi trả về:
{“Bài luận số 2”}
Kết quả tương tự được trả về trong mã của chúng tôi. Nhưng thay vì sử dụng difference()
đặt phương pháp, chúng tôi đã sử dụng -
toán tử, thực hiện kiểm tra để tìm sự khác biệt giữa hai tập hợp.
Kết luận
Cấu trúc dữ liệu tập hợp Python cho phép bạn lưu trữ các tập hợp mục không có thứ tự.
Mỗi mục trong một tập hợp phải là duy nhất, vì vậy không có bản sao nào có thể tồn tại và không thể thay đổi nội dung của một tập hợp sau khi chúng được thêm vào tập hợp.
Hướng dẫn này đã thảo luận, có tham chiếu đến các ví dụ, kiến thức cơ bản về bộ Python và các hoạt động chính được cung cấp bởi bộ.
Tuy nhiên, chúng tôi mới chỉ sơ lược về những gì bạn có thể làm với bộ - vẫn còn nhiều điều để bạn khám phá - nhưng chúng tôi đã đề cập đến những kỹ năng chính bạn cần biết để làm việc hiệu quả với bộ. Bây giờ bạn đã sẵn sàng để bắt đầu sử dụng Python set()
phương pháp như một người chuyên nghiệp!
Python được sử dụng trong các môi trường phát triển chuyên nghiệp trên khắp thế giới cho mọi thứ, từ phân tích dữ liệu đến phát triển web. Tải xuống ứng dụng Career Karma miễn phí hôm nay để tìm hiểu thêm về con đường sự nghiệp trong lập trình Python.