Set trong python là gì?
Set trong python là một tập các giá trị không có thứ tự. Mỗi giá trị trong set là duy nhất, không thể lặp lại và bất biến( tức bạn không thể thay đổi giá trị các phần tử trong set).
Tuy nhiên các set có thể thay đổi. Chúng ta có thể thêm, xóa các phần tử trong set.
Các set có thể được sử dụng để thực hiện các phép tập hợp như phép giao, hợp, …
Cách tạo một set trong python
Mỗi set được tạo bằng cách đặt các phần tử của nó vào trong dấu {}
, được phân tách bằng dấu phẩy, hoặc sử dụng hàm dựng sẵn set()
.
Các phần tử của set có thể thuộc nhiều kiểu dữ liệu khác nhau như: numbers, string,… Nhưng các phần tử không được là các kiểu dữ liệu có thể thay đổi như list hay dictionary.
#một set kiểu numbers set1={5,7,8,6} print(set1) #return {8, 5, 6, 7} #một set kiểu string set2={"hello", "hi", "xin chao"} print(set2) #return {'hi', 'hello', 'xin chao'} #set với kiểu dữ liệu hỗn hợp set3 = {"hello", 5, (1,5,7)} print(set3) #return {(1, 5, 7), 5, 'hello'}
Lưu ý: nếu khi tạo set mà có các phần tử trùng nhau thì sẽ tự động loại bỏ các phần tử lặp.
name = {'hieu', 'hieu'} print(name) #return {'hieu'}
Truy cập các phần tử trong set
Không thể truy cập đến một phần tử thông qua vị trí của chúng, vì set không có thứ tự các phần tử. Thay vào đó, ta phải sử dụng vòng for
.
myset = {5,7,6,4} for item in myset: print(item)
kết quả:
4 5 6 7
Thêm phần tử
Chúng ta có thể thêm một phần tử vào set trong python bằng cách sử dụng hàm add()
hoăc thêm nhiều bằng cách sử dụng hàm update()
.
myset = {4,8,7,5} #thêm một số vào setset myset.add(6) print(myset) #return {4, 5, 6, 7, 8} #thêm một chuỗi cũng làm như thêm một số vậy myset.add("hello") print(myset) #retrun {4, 5, 6, 7, 8, 'hello'}
Sử dụng hàm update()
để cập nhật set.
name={'hieu', 'hoai', 'anh', 'loc'} name.update(['john', 'lina', 'hary']) print(name) #return {'hoai', 'anh', 'loc', 'lina', 'john', 'hary', 'hieu'}
Loại bỏ phần tử
Để loại bỏ một phần tử trong set có nhiều cách.
Hàm removed
thisset = {"apple", "banana", "cherry"} #xóa phần tử "banana thisset.remove("banana") print(thisset) #return {'apple', 'cherry'}
Nếu xóa phần tử bằng remove
thì trong trường hợp phần tử cần xóa không có trong set thì sẽ phát sinh lỗi.
Hàm discard
thisset = {"apple", "banana", "cherry"} thisset.discard("banana") print(thisset) #return {'apple', 'cherry'}
Khi xóa bằng discard
, nếu phần tử không có trong set thì sẽ không
phát sinh lỗi.
Hàm pop
pop
sẽ xóa phần tử cuối cùng, nên cẩn thận khi sử dụng pop
vì bạn sẽ không biết được phần tử cuối cùng là phần tử nào.
thisset = {"apple", "banana", "cherry"} x = thisset.pop() print(x) # trong trường hợp này phần tử cuối cùng là 'apple' print(thisset) #return {'banana', 'cherry'}
Hàm clear
Với hàm clear()
sẽ xóa toàn bộ các phần tử trong set.
thisset = {"apple", "banana", "cherry"} thisset.clear() print(thisset) #return set()
Hàm del
Hàm del
sẽ xóa set trong python.
thisset = {"apple", "banana", "cherry"} del thisset print(thisset)
Vì lúc này set đã bị xóa nên khi gọi hàm print
sẽ thông báo lỗi.
Traceback (most recent call last): File "c:UsersnguyeOneDriveTau0300i li�u0323uvisua studiopythontest.py", line 5, in <module> print(thisset) NameError: name 'thisset' is not defined
Kiểm tra phần tử có trong set hay không
Sử dụng in
hoặc not in
để kiểm tra một phần tử đã chỉ định có trong set hay không.
thisset = {10,15,19,14} #kiểm tra xem số 10 có trong set hay không print(10 in thisset) #return True #kiểm tra xem số 15 có mặt không print(15 not in thisset) # return False
Các hàm với set trong python
Phép hợp( nối hai set trong python)
Hợp của hai set sẽ bao gồm tất cả các phần tử của hai set đó. Hợp được thực hiện bằng toán tử |
,hoặc cũng có thể sử dụng hàm union().
A ={1,2,3,4} B ={3,4,5,6} #2 cách dưới sẽ cùng cho một kết quả print(A | B) print(A.union(B)) #return {1, 2, 3, 4, 5, 6}
Hàm intersection
Hàm này được mô tả như phép giao hai set. Giao của hai set là tập hợp các phần tử có cả ở trong cả hai set. Phép giao được thưc hiện bằng toán tử &
,hoặc sử dụng hàm intersection().
A ={1,2,3,4} B ={3,4,5,6} #2 cách dưới sẽ cùng cho một kết quả print(A & B) print(A.intersection(B)) #return {3, 4}
Hàm difference
Hàm này được mô tả như phép trừ hai set trong python. Phép trừ sẽ trả về một tập hợp các giá trị chỉ có ở set A hoặc set B. Phép trừ được thực hiện bằng cách sử dụng -
toán tử. Tương tự có thể được thực hiện bằng hàm difference()
.
A ={1,2,3,4} B ={3,4,5,6} #2 cách dưới sẽ cùng cho một kết quả print(A - B) print(A.difference(B)) #return {1, 2} #{1, 2} chỉ có ở A mà không có ở B
symmetric_difference
Hàm này có công dụng như là phép đối xứng. Trả về tập hợp những giá trị có trong set A và set B. Phép đối xứng được thực hiện bằng toán tử ^
hoặc hàm symmetric_difference()
.
A ={1,2,3,4} B ={3,4,5,6} #2 cách dưới sẽ cùng cho một kết quả print(A ^ B) print(A.symmetric_difference(B)) #return {1, 2, 5, 6}
Các hàm tích hợp với set khác
Ngoài các hàm kẻ trên thì set trong python cũng hỗ trợ rất nhiều hàm tương tự như các kiểu dữ liệu khác
Hàm any
Trả về True khi một
giá trị là đúng. Hai giá trị sai là 0 và False, hoặc set là một set trống.
l = {1, 2, 3, 5, 0} # 1 sai, tất cả đúng print(any(l)) l = {0, False} # 2 sai print(any(l)) l = {0, False, 8} #2 sai, 1 đúng print(any(l)) l = {} #set rỗng print(any(l))
True False True False
Hàm max
Trả về giá trị lớn nhất trong set.
number = {1, 2, 3, 5, 0} print(max(number)) #return 5
Hàm min
Trả về giá trị nhỏ nhất trong set.
number = {1, 2, 3, 5, 0} print(min(number)) #return 0
Hàm sorted
Trả về một danh sách đã được sắp xếp.
number = {1, 2, 3, 5, 0} #sắp xếp giảm dần print(sorted(number, reverse=True)) #return [5, 3, 2, 1, 0] #sắp xếp tăng dần print(sorted(number, reverse=False)) #return [0, 1, 2, 3, 5]
Hàm sum
Sẽ trả về tổng của các phần tử nếu các phần tử thuộc kiểu số.
number = {5,4,2,3,6} print(sum(number)) #return 20
Vừa rồi mình đã giới thiệu cho các bạn về Set, các hàm thường dùng và một số hàm liên quan. Hi vọng qua bài viết cấc bạn sẽ có thêm những kiến thức bổ ích.
Hẹn các bạn vào các bài học sau!!!
Hãy tham gia group lập trình không khó để cùng thảo luận về các vấn đề về lập trình.
Để lại một bình luận