Cổng Khoa học Máy tính dành cho những người yêu thích máy tính. Nó bao gồm các bài báo về khoa học máy tính và lập trình được viết tốt, tư duy tốt và được giải thích tốt, các câu đố và thực hành / lập trình cạnh tranh / các câu hỏi phỏng vấn công ty.

Bạn đang xem : set in python 3

Tập hợp là kiểu dữ liệu thu thập không có thứ tự, có thể lặp lại, có thể thay đổi và không có phần tử trùng lặp. Lớp tập hợp của Python đại diện cho khái niệm toán học về một tập hợp. Ưu điểm chính của việc sử dụng một tập hợp, trái ngược với một danh sách, là nó có một phương pháp được tối ưu hóa cao để kiểm tra xem một phần tử cụ thể có được chứa trong tập hợp hay không. Điều này dựa trên cấu trúc dữ liệu được gọi là bảng băm . Vì các tập hợp không có thứ tự, chúng tôi không thể truy cập các mục bằng chỉ mục như chúng tôi làm trong danh sách .

Python3

< p class = "line number1 index0 alt2">

myset = set (["a", "b", "c"])

print (myset)

myset.add ("d")

pri nt (myset)

 
 

Đầu ra:

 {'c', 'b', 'a'}
{'d', 'c', 'b', 'a'} 

Bộ đông lạnh

Bộ đông lạnh trong Python là các đối tượng không thay đổi chỉ hỗ trợ các phương thức và toán tử tạo ra một kết quả mà không ảnh hưởng đến tập hợp được đóng băng hoặc các tập hợp mà chúng được áp dụng. Mặc dù các phần tử của một tập hợp có thể được sửa đổi bất kỳ lúc nào, các phần tử của tập hợp đã được cố định vẫn giữ nguyên sau khi tạo.
Nếu không có tham số nào được truyền, nó sẽ trả về một tập hợp trống.

Python

< p class = "ring-load" id = "run-and-edit-loader">

< / p>

normal_set = set (["a", "b", "c"])

print (" Bình thường Đặt ")

print < / code> (normal_set)

Frozen_set = frozenset (["e", "f", "g"])

print ("\ nFrozen Đặt ")

< p class = "line number14 index13 alt1"> print (freeze_set)

 
 

Đầu ra :

 Bộ thông thường
set (['a', 'c', 'b'])

Bộ đông lạnh
frozenset (['e', 'g', 'f']) 

Hoạt động nội bộ của Set

Điều này dựa trên cấu trúc dữ liệu được gọi là bảng băm .
Nếu Nhiều giá trị có ở cùng một vị trí chỉ mục, thì giá trị đó sẽ được nối vào vị trí chỉ mục đó, để tạo thành Danh sách được liên kết. Trong, Bộ Python được triển khai bằng cách sử dụng từ điển với các biến giả, trong đó các bản thể chính mà các thành viên đặt với sự tối ưu hóa cao hơn với độ phức tạp về thời gian.
Cài đặt Triển khai: -

< p>

Đặt với Nhiều thao tác trên một HashTable: -

Phương thức cho bộ

Thêm phần tử

Chèn vào bộ được thực hiện thông qua hàm set.add (), nơi một giá trị bản ghi thích hợp được tạo để lưu trữ trong bảng băm. Tương tự như việc kiểm tra một mặt hàng, tức là trung bình O (1). Tuy nhiên, trong trường hợp xấu nhất, nó có thể trở thành O (n).

Python3

< / p>

người = {"Jay", "Idrish", "Archi"}

print (" Mọi người: ", end = "")

print (người)

< p class = "line number11 index10 alt2">

người. add ("Daxit")

cho i trong range ( 1 , 6 ):

people.add (i)

< / p>

print ("\ nĐặt sau khi thêm phần tử:", end = "")

print (people)

< / p>

 
 

Đầu ra:

 Mọi người: {'Idrish', 'Archi', 'Jay'}

Đặt sau khi thêm phần tử: {1, 2, 3, 4, 5, 'Idrish', 'Archi', 'Jay', 'Daxit'} 

Union

Hai tập hợp có thể được hợp nhất bằng cách sử dụng hàm union () hoặc | nhà điều hành. Cả hai giá trị Bảng băm đều được truy cập và duyệt qua với thao tác hợp nhất thực hiện trên chúng để kết hợp các phần tử, đồng thời các bản sao bị loại bỏ. Độ phức tạp thời gian của điều này là O (len (s1) + len (s2)) trong đó s1 và s2 là hai tập hợp mà sự liên kết cần được thực hiện.

Python3

người = < / code> {"Jay", "Idrish", "Archil"}

ma cà rồng = {"Karan", "Arjun"}

dracula = {" Deepanshu "," Raju "}

dân số = people.union (ma cà rồng)

print ("Liên minh sử dụng hàm union ()")

print (dân số)

dân số = người | dracula

print ("\ n Hành động sử dụng '|' operator ")

print (dân số)

 
 

Đầu ra:

 Union sử dụng hàm union ()
{'Karan', 'Idrish', 'Jay', 'Arjun', 'Archil'}

Union sử dụng '|' nhà điều hành
{'Deepanshu', 'Idrish', 'Jay', 'Raju', 'Archil'} 

Giao lộ

Điều này có thể được thực hiện thông qua giao lộ ( ) hoặc & amp; nhà điều hành. Các phần tử chung được chọn. Chúng tương tự như việc lặp lại các danh sách Hash và kết hợp các giá trị giống nhau trên cả hai Bảng. Độ phức tạp thời gian của điều này là O (min (len (s1), len (s2)) trong đó s1 và s2 là hai tập hợp mà sự liên kết cần được thực hiện.

Python3

< / p>

set1 = set ()

set2 = set ()

cho tôi trong range ( 5 ):

set1.add (i)

cho i trong range ( 3 , 9 ):

set2.add (i)

set3 = set1.intersection (set2)

print ( "Giao lộ sử dụng hàm giao ()")

print ( set3)

set3 = set1 & amp; set2

print ("\ nPhần giao diện sử dụng '& amp;' toán tử")

print (set3)

 
 

Đầu ra:

 Giao lộ sử dụng hàm giao ()
{3, 4}

Giao lộ sử dụng '& amp;' nhà điều hành
{3, 4} 

Sự khác biệt

Để tìm sự khác biệt giữa các tập hợp. Tương tự để tìm sự khác biệt trong danh sách liên kết. Điều này được thực hiện thông qua toán tử chênh lệch () hoặc -. Độ phức tạp về thời gian của việc tìm sự khác biệt s1 - s2 là O (len (s1))

Python3

< / p>

set1 = set ()

set2 = set ()

cho i trong range ( 5 ):

set1.add (i)

cho i trong range ( 3 , 9 ):

set2. thêm (i)

set3 = set1.difference (set2)

print ("Sự khác biệt của hai tập hợp sử dụng hàm difference ()")

print (set3)

< p class = "line number21 index20 alt2">

set3 < / code> = set1 - set2

print ("\ nSự khác biệt của hai tập hợp sử dụng toán tử '-' ")

print (set3)

 
 < / pre>  Đầu ra:  
 Sự khác biệt của hai tập hợp bằng cách sử dụng hàm difference ()
{0, 1, 2}

Sự khác biệt của hai tập hợp sử dụng toán tử '-'
{0, 1, 2} 

Xóa tập hợp

Phương thức Clear () xóa toàn bộ tập hợp.

Python3

< p>

set1 = { 1 , 2 , 3 , 4 , 5 , 6 }

< p class = "số dòng 7 index6 alt2 "> print (" Ban đầu set ")

print (set1) < / code>

set1.clear ()

< p class = "line number14 index13 alt1"> print ("\ nĐặt sau khi sử dụng hàm clear ()")

print (set1)

 
 

Đầu ra:

 Thiết lập ban đầu
{1, 2, 3, 4, 5, 6}

Đặt sau khi sử dụng hàm clear ()
set () 

Tuy nhiên, có hai cạm bẫy chính trong tập hợp Python:

  1. Tập hợp không duy trì các phần tử trong bất kỳ thứ tự cụ thể nào.
  2. Chỉ các phiên bản của kiểu bất biến mới có thể được thêm vào một bộ Python.

Độ phức tạp về thời gian của các Bộ

Hoạt động Trường hợp trung bình Trường hợp tồi tệ nhất trong sO (1) O (n) Liên minh s | tO (len (s) + len (t)) Giao điểm s & amp; tO (min (len (s), len (t)) ) O (len (s) * len (t)) thay “min” bằng “max” nếu t không phải là tập hợp Nhiều giao điểm s1 & amp; s2 & amp; .. & amp; sn (n-1) * O (l) trong đó l là max (len (s1), .., len (sn)) Chênh lệch s-tO (len (s))

Toán tử cho Bộ

Hỗ trợ bộ và bộ cố định các toán tử sau:

Các toán tử Phím số trong khóa kiểm tra giải trí không có trong snon-containsment checks1 == s2s1 tương đương với s2s1! = s2s1 không tương đương với s2s1 & lt; = s2s1 là tập con của s2s1 & lt; s2s1 là tập hợp con thích hợp của s2s1 & gt; = s2s1 là tập hợp con của s2s1 & gt; s2s1 là tập siêu phù hợp của s2s1 | s2 sự kết hợp của s1 và s2s1 & amp; s2 giao điểm của s1 và s2s1 - s2 tập hợp các phần tử trong s1 nhưng không phải s2s1 ˆ s2 tập hợp các phần tử chính xác là một trong s1 hoặc s2

Đoạn mã để minh họa tất cả các hoạt động Đặt trong Python

Python

set1 < code class = "keyword"> = set ()

set2 = set ()

cho i trong các hàm phạm vi ( 1 , 6 ):

set1.add (i)

< / p>

cho i trong < / code> range ( 3 , 8 ):

set2.add (i)

print (" Set1 = ", set1)

print (" Set2 = ", set2)

< code class = "keyword"> print ("\ n")

< p class = "line number20 index19 alt1">

set3 = set1 | set2

print ("Liên minh Set1 & amp; Set2: Set3 = ", set3)

< / p>

set4 = set1 & amp; set2

print ("Giao điểm của Set1 & amp; Set2: Set4 = ", set4)

< code class = "functions"> print ("\ n")

< p class = "line number29 index28 alt2">

if set3 & gt; set4:

print ("Set3 superset của Set4")

else if set3 & lt; set4:

print ("Set3 tập hợp con của Set4")

else :

print ("Set3 giống như Set4 ")

< / p>

if set4 & lt; set3:

print ("Set4 tập hợp con của Set3")

print ("\ n")

set5 = set3 - set4

print ("Phần tử trong Set3 không trong Set4: Set5 = ", set5)

print ("\ n")

if set4.isdisjoint (set5):

print ( "Set4 Set5 không có gì trong chung \ n ")

set5.clear ()

print (" Sau khi áp dụng cle ar trên các bộ Set5: ")

print (" Set5 = ", set5)

< / p>

 
 

Đầu ra:

 ('Set1 =', set ([1, 2, 3, 4, 5]))
('Set2 =', set ([3, 4, 5, 6, 7]))


('Liên hiệp của Set1 & amp; Set2: Set3 =', set ([1, 2, 3, 4, 5, 6, 7]))
('Giao điểm của Set1 & amp; Set2: Set4 =', set ([3, 4, 5]))


Set3 là siêu tập của Set4
Set4 là tập con của Set3


('Các phần tử trong Set3 và không phải trong Set4: Set5 =', set ([1, 2, 6, 7]))


Set4 và Set5 không có điểm chung

Sau khi áp dụng rõ ràng trên các bộ Set5:
('Set5 =', set ([])) 

Các bài viết gần đây về Python Set.

Bài viết này được đóng góp bởi Jay Patel. Nếu bạn thích GeeksforGeeks và muốn đóng góp, bạn cũng có thể viết một bài báo và gửi bài viết của mình tới địa chỉ review-team@geeksforgeeks.org . Xem bài viết của bạn xuất hiện trên trang chính của GeeksforGeeks và trợ giúp những Geeks khác.

Vui lòng viết bình luận nếu bạn thấy bất kỳ điều gì không chính xác hoặc bạn muốn chia sẻ thêm thông tin về chủ đề đã thảo luận ở trên < / p>

My Personal Notes


Xem thêm những thông tin liên quan đến chủ đề đặt trong python 3

Bài 17: Kết nối với MySQL trong Python

alt

  • Tác giả: Tư duy lập trình Học
  • Ngày đăng: 2017-03-13
  • Đánh giá: 4 ⭐ ( 2718 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Kết nối MySQL bằng python.
    Sử dụng các câu lệnh select, update, insert trong Python.
    Source code và link tham khảo các bạn vào: https://duyminh215.github.io/python/2017/03/16/video-tutorial-bai-17-ket-noi-den-mysql-trong-python.html

Ký tự đặc biệt trong python (escape sequence)

  • Tác giả: chongthamvietnam.vn
  • Đánh giá: 4 ⭐ ( 1853 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Contents

Cài đặt môi trường Python

  • Tác giả: howkteam.vn
  • Đánh giá: 4 ⭐ ( 6063 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Ở bài trước, Kteam đã giới thiệu với các bạn về Ngôn ngữ lập trình Python  cũng như những ứng dụng mạnh mẽ của ngôn ngữ này.
    Trong bài này, chúng ta sẽ cùng nhau tìm hiểu về cách CÀI ĐẶT MÔI TRƯỜNG PHÁT TRIỂN cho ngôn ngữ Python. Nào! cùng bắt đầu nhé!

Cài đặt Python và môi trường lập trình với Visual Studio Code

  • Tác giả: gochocit.com
  • Đánh giá: 5 ⭐ ( 6052 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cài đặt Python và môi trường lập trình với Visual Studio Code. Giới thiệu ngôn ngữ Python, cài đặt môi trường ảo Python với Visual Studio Code.

Đâu là quy tắc đúng khi đặt tên cho biến trong python?

  • Tác giả: dongdo.edu.vn
  • Đánh giá: 4 ⭐ ( 4423 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Câu hỏi: Đâu là quy tắc đúng khi đặt tên cho biến trong python?

Học lập trình python 3

  • Tác giả: vncoder.vn
  • Đánh giá: 4 ⭐ ( 5739 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: python 3 là gì, giới thiệu python 3, python 3, python là gì, cách học python, bắt đầu lập trình với python

Cài Đặt Python 3 Trên MacOS

  • Tác giả: www.codehub.com.vn
  • Đánh giá: 5 ⭐ ( 1932 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn ngắn này sẽ chỉ cho bạn cách cài đặt Python 3 một cách nhanh chóng trên máy tính Mac OS X. Có nhiều cách để cài đặt Python 3, bao gồm tải xuống từ trang we...

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Tạo kiểu danh sách thả xuống tùy chỉnh - kiểu danh sách thả xuống

By ads_php