Trong chương này của hướng dẫn của chúng tôi, chúng tôi đang xử lý việc triển khai các bộ của Python. Mặc dù tập hợp ngày nay là một phần không thể thiếu của toán học hiện đại, nhưng điều này không phải lúc nào cũng đúng. Lý thuyết tập hợp đã bị nhiều người bác bỏ, ngay cả bởi một số nhà tư tưởng vĩ đại. Một trong số họ là nhà triết học Wittgenstein. Ông không thích lý thuyết tập hợp và phàn nàn rằng toán học "bị đè bẹp bởi những thành ngữ nguy hiểm của lý thuyết tập hợp". ". Ông bác bỏ lý thuyết tập hợp là "hoàn toàn vô nghĩa", là "buồn cười" và "sai lầm". Sự chỉ trích của ông xuất hiện nhiều năm sau cái chết của nhà toán học người Đức Georg Cantor, người sáng lập lý thuyết tập hợp. David Hilbert đã bảo vệ nó khỏi những lời chỉ trích bằng tuyên bố nổi tiếng. "Không ai có thể trục xuất chúng ta khỏi Thiên đường mà Cantor đã tạo ra
Cantor đã định nghĩa một tập hợp ở đầu cuốn "Beiträge zur Begründung der transfiniten Mengenlehre" của ông là. “Tập hợp là sự tập hợp lại thành một tổng thể các đối tượng xác định, riêng biệt của nhận thức và tư duy của chúng ta - chúng được gọi là các phần tử của tập hợp. " Ngày nay, chúng ta có thể nói bằng tiếng Anh "đơn giản". Một tập hợp là một tập hợp các đối tượng được xác định rõ
Các phần tử hoặc thành viên của một tập hợp có thể là bất cứ thứ gì. số, ký tự, từ, tên, chữ cái trong bảng chữ cái, thậm chí các bộ khác, v.v. Các bộ thường được ký hiệu bằng chữ in hoa. Đây không phải là định nghĩa toán học chính xác, nhưng nó đủ tốt cho những điều sau đây
Kiểu dữ liệu "set", là kiểu bộ sưu tập, là một phần của Python kể từ phiên bản 2. 4. Một tập hợp chứa một tập hợp không có thứ tự các đối tượng duy nhất và bất biến. Kiểu dữ liệu tập hợp, như tên ngụ ý, là một triển khai Python của các tập hợp khi chúng được biết đến từ toán học. Điều này giải thích tại sao các tập hợp không giống như danh sách hoặc bộ dữ liệu không thể có nhiều lần xuất hiện của cùng một phần tử
Đào tạo Python trực tiếp
Thưởng thức trang này?
Nhìn thấy. Tổng quan về các khóa học Python trực tiếp
đăng ký tại đây
bộ
Nếu chúng ta muốn tạo một tập hợp, chúng ta có thể gọi hàm tập hợp tích hợp với một chuỗi hoặc một đối tượng có thể lặp lại khác
Trong ví dụ sau, một chuỗi được số ít hóa thành các ký tự của nó để xây dựng tập kết quả x
x = set["A Python Tutorial"] x
ĐẦU RA
{' ', 'A', 'P', 'T', 'a', 'h', 'i', 'l', 'n', 'o', 'r', 't', 'u', 'y'}
type[x]
ĐẦU RA
set
Chúng ta có thể chuyển một danh sách cho hàm set tích hợp sẵn, như chúng ta có thể thấy trong phần sau
x = set[["Perl", "Python", "Java"]] x
ĐẦU RA
{'Java', 'Perl', 'Python'}
Bây giờ, chúng tôi muốn chỉ ra điều gì sẽ xảy ra, nếu chúng tôi chuyển một bộ có các phần tử xuất hiện lại cho hàm thiết lập - trong ví dụ của chúng tôi là thành phố "Paris"
cities = set[["Paris", "Lyon", "London","Berlin","Paris","Birmingham"]] cities
ĐẦU RA
{'Berlin', 'Birmingham', 'London', 'Lyon', 'Paris'}
Như chúng ta đã dự đoán, không có sự nhân đôi nào xảy ra trong tập hợp các thành phố thu được
Bộ bất biến
Các bộ được triển khai theo cách không cho phép các đối tượng có thể thay đổi. Ví dụ sau đây chứng minh rằng chúng ta không thể bao gồm các danh sách chẳng hạn như các phần tử
________số 8_______
ĐẦU RA
--------------------------------------------------------------------------- TypeError Traceback [most recent call last] in ----> 1 cities = set[[["Python","Perl"], ["Paris", "Berlin", "London"]]] 2 3 cities TypeError: unhashable type: 'list'
Mặt khác, Tuples vẫn ổn
{' ', 'A', 'P', 'T', 'a', 'h', 'i', 'l', 'n', 'o', 'r', 't', 'u', 'y'}0
Đào tạo Python trực tiếp
Thưởng thức trang này?
Nhìn thấy. Tổng quan về các khóa học Python trực tiếp
Các khóa học trực tuyến sắp tới
Khái niệm cơ bản về Python cho người mới bắt đầu
Khóa học nâng cao chuyên sâu
Python dành cho kỹ sư và nhà khoa học
Lập trình hướng đối tượng với Python
đăng ký tại đây
băng giá
Mặc dù các bộ không thể chứa các đối tượng có thể thay đổi, nhưng các bộ có thể thay đổi
{' ', 'A', 'P', 'T', 'a', 'h', 'i', 'l', 'n', 'o', 'r', 't', 'u', 'y'}1
ĐẦU RA
{' ', 'A', 'P', 'T', 'a', 'h', 'i', 'l', 'n', 'o', 'r', 't', 'u', 'y'}2
Frozensets giống như bộ ngoại trừ việc chúng không thể thay đổi, tôi. e. chúng là bất biến
{' ', 'A', 'P', 'T', 'a', 'h', 'i', 'l', 'n', 'o', 'r', 't', 'u', 'y'}3
ĐẦU RA
{' ', 'A', 'P', 'T', 'a', 'h', 'i', 'l', 'n', 'o', 'r', 't', 'u', 'y'}4
Ký hiệu cải tiến
Chúng ta có thể định nghĩa các tập hợp [vì Python2. 6] mà không cần sử dụng chức năng thiết lập tích hợp. Chúng ta có thể sử dụng dấu ngoặc nhọn để thay thế
{' ', 'A', 'P', 'T', 'a', 'h', 'i', 'l', 'n', 'o', 'r', 't', 'u', 'y'}5
ĐẦU RA
{' ', 'A', 'P', 'T', 'a', 'h', 'i', 'l', 'n', 'o', 'r', 't', 'u', 'y'}6
Đào tạo Python trực tiếp
Thưởng thức trang này?
Nhìn thấy. Tổng quan về các khóa học Python trực tiếp
đăng ký tại đây
Đặt hoạt động
thêm [phần tử]
{' ', 'A', 'P', 'T', 'a', 'h', 'i', 'l', 'n', 'o', 'r', 't', 'u', 'y'}7
{' ', 'A', 'P', 'T', 'a', 'h', 'i', 'l', 'n', 'o', 'r', 't', 'u', 'y'}8
ĐẦU RA
{' ', 'A', 'P', 'T', 'a', 'h', 'i', 'l', 'n', 'o', 'r', 't', 'u', 'y'}9
type[x]0
ĐẦU RA
type[x]1
Tất nhiên, một phần tử sẽ chỉ được thêm vào nếu nó chưa có trong tập hợp. Nếu nó đã được chứa, lệnh gọi phương thức không có tác dụng
thông thoáng[]
Tất cả các phần tử sẽ bị xóa khỏi một tập hợp
type[x]2
ĐẦU RA
type[x]3
sao chép
Tạo một bản sao nông, được trả lại
type[x]4
ĐẦU RA
type[x]5
type[x]6
type[x]7
ĐẦU RA
type[x]3
Phép gán "city_backup = more_cities" chỉ tạo một con trỏ, tôi. e. tên khác, với cùng một cấu trúc dữ liệu
sự khác biệt[]
Phương thức này trả về sự khác biệt của hai hoặc nhiều bộ dưới dạng một bộ mới, không thay đổi bộ ban đầu
type[x]9
ĐẦU RA
set0
set1
ĐẦU RA
set2
Thay vì sử dụng chênh lệch phương thức, chúng ta có thể sử dụng toán tử "-"
set3
ĐẦU RA
set0
set5
ĐẦU RA
set2
Difference_update[]
Phương thức Difference_update xóa tất cả các phần tử của tập hợp khác khỏi tập hợp này. x. Difference_update[y] giống như "x = x - y" hoặc thậm chí x -= y hoạt động
set7
ĐẦU RA
set0
loại bỏ [el]
Một phần tử el sẽ bị xóa khỏi tập hợp, nếu nó được chứa trong tập hợp. Nếu el không phải là thành viên của tập hợp, sẽ không có gì được thực hiện
set9
ĐẦU RA
x = set[["Perl", "Python", "Java"]] x0
x = set[["Perl", "Python", "Java"]] x1
ĐẦU RA
x = set[["Perl", "Python", "Java"]] x0
loại bỏ [el]
Hoạt động giống như discard[], nhưng nếu el không phải là thành viên của tập hợp, lỗi KeyError sẽ xuất hiện
x = set[["Perl", "Python", "Java"]] x3
ĐẦU RA
x = set[["Perl", "Python", "Java"]] x0
x = set[["Perl", "Python", "Java"]] x5
ĐẦU RA
x = set[["Perl", "Python", "Java"]] x6
công đoàn
Phương thức này trả về hợp của hai tập hợp dưới dạng một tập hợp mới, tôi. e. tất cả các phần tử trong một trong hai tập hợp
x = set[["Perl", "Python", "Java"]] x7
ĐẦU RA
x = set[["Perl", "Python", "Java"]] x8
Điều này có thể được viết tắt bằng toán tử đường ống ". "
x = set[["Perl", "Python", "Java"]] x9
ĐẦU RA
x = set[["Perl", "Python", "Java"]] x8
Giao lộ]
Trả về giao điểm của tập đối tượng và tập hợp s dưới dạng một tập hợp mới. Nói cách khác, một tập hợp có tất cả các phần tử được chứa trong cả hai tập hợp được trả về