Hàm set() trong python và cách tạo set từ iterable | Laptrinhcanban.com

Hàm set() trong python và cách tạo set từ iterable

Cùng tìm hiểu hàm set() trong python và cách dùng hàm set() để tạo set từ iterable trong python. Bạn sẽ biết hàm set() trong python là gì, iterable trong python là gì, cú pháp set trong python cũng như cách tạo set từ iterable trong python sau bài học này.

Hàm set() trong python là gì

Định nghĩa hàm set() trong python

Hàm set() trong python là một hàm tạo (constructor) trong class set và được sử dụng để tạo set từ các giá trị được chỉ định.

Bạn có thể tham khảo chi tiết về hàm set() cũng như là class set tại website chính thức Python Doccument.

Cú pháp set trong python

Cú pháp set trong python như sau:

set ( iterable )

Trong đó, iterable là đối số duy nhất của hàm set và chúng ta sẽ tìm hiểu định nghĩa iterable trong python ở phần sau.

Kết quả của hàm set() trong python sẽ là một set mới có phần tử là các giá trị chứa trong iterable được chỉ định.

Lưu ý là do trong kiểu set các phần tử trong đó không có thứ tự và không thể trùng lặp nhau, do đó các phần tử từ trong iterable chỉ định sau khi chuyển qua set sẽ bị xóa đi các phần tử trùng lặp, cũng như là không còn giữ nguyên thứ tự như ban đầu.

Ví dụ, chúng ta sử dụng hàm set() để tạo một set từ một chuỗi như sau:

myset= set('cityboy')
print(myset)
#>> {'o', 'y', 't', 'i', 'c', 'b'}

Kết quả set in ra sẽ là các ký tự không trùng lặp nhau từ chuỗi ban đầu, và chúng cũng không giữ nguyên thứ tự như trước. Và do trong set các phần tử không tồn tại thứ tự, nên bạn sẽ không biết thứ tự in ra màn hình của các phần tử trong set sẽ như thế nào, do đó kết quả in ra màn hình các lần thực thi khác nhau sẽ cho ra kết quả khác nhau. Ví dụ như nếu bạn chạy lại mã lệnh ở trên, kết quả in ra màn hình có thể khác đi như sau:

myset= set('cityboy')
print(myset)
#>> {'c', 'i', 'b', 't', 'y', 'o'}

Iterable trong python là gì

Chúng ta hay gặp từ khóa iterable khi tìm hiểu cách sử dụng các kiểu dữ liệu có nhiều phần tử như array, set, set v.v…

Khái niệm về iterable trong python thực ra không phức tạp nhưng lại có thể khiến nhiều lập trình viên mới nhức đầu đấy.

Bạn có thể hiểu một cách đơn giản nhất, iterable là các đối tượng có nhiều phần tử có thể lặp lại như list, chuỗi ký tự, set, tuple, hoặc là các trình lặp trong python.

Vì trong iterable có chứa nhiều phần tử, do đó chúng ta có thể chỉ định iterable trong đối số của hàm set(), lấy ra các phần tử của nó và tạo ra một set mới trong python.

Sử dụng hàm set() để tạo set từ iterable trong python

Tạo set từ set khác trong python

Chúng ta chỉ định đối số iterable của hàm set() là một set và tạo ra một set mới từ set ban đầu như ví dụ sau:

set_ban_đầu = {"A", "B", "C"}
set_mới = set(set_ban_đầu);
print(set_mới)

#>> {'B', 'C', 'A'}

Bạn có thể thấy một set mới đã được tạo ra có các phần tử giống như set ban đầu. Lưu ý rằng chúng ta đã sử dụng hàm set() để copy set cũ để tạo ra set mới, nên hai set này là hai đối tượng riêng biệt.

Chuyển string sang set trong Python

Chúng ta chỉ định đối số iterable của hàm set() là một chuỗi string và chuyển string sang set trong Python như ví dụ sau:

mystr = "Hello Python"
myset = set(mystr)
print(myset)
#>> {'t', 'l', 'e', 'P', 'h', 'y', 'H', 'o', 'n', ' '}

Kết quả, chúng ta đã tạo set từ chuỗi string ban đầu với các phần tử trong set mới là các ký tự không trùng lặp từ chuỗi ban đầu.

Chuyển đổi list, tuple sang set trong python

Chúng ta chỉ định đối số iterable của hàm set() là một list hoặc một set và chuyển đổi các iterable này sang set (danh sách) trong python như ví dụ sau:

#Chuyển đổi list sang set trong python
mylist = ["A", "B", "C", "B"]
myset = set(mylist)
print(myset)
#>> {'A', 'C', 'B'}


#Chuyển đổi tuple sang set trong python
mytuple = (1, 2, 3, 4, 5 , 4, 3)
myset =set(mytuple)
print(myset)
#>> {1, 2, 3, 4, 5}

Kết quả, chúng ta đã tạo set từ list hoặc tuple trong python với các phần tử không trùng lặp.

Tạo set từ range trong python

range (kiểu phạm vi) là một đối tượng được tạo ra bởi class range, có phần tử là các số liên tiếp từ số bắt đầu đến số kết thúc.

Chúng ta có thể tạo set từ range trong python như các ví dụ sau:

myset = set (range (10))
print (myset)
#>> {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

myset = set (range (2, 10))
print (myset)
#>> {2, 3, 4, 5, 6, 7, 8, 9}

myset = set (range (2, 10, 2 ))
print (myset)
#>> {8, 2, 4, 6}

Bạn có thể thấy một set mới gồm các phần tử là các số được chỉ định trong đối tượng range đã được tạo ra.

Tạo một set rỗng trong python bằng hàm set()

Một ứng dụng khác của hàm set(), đó chính là tạo ra một set rỗng trong python.

Để tạo set rỗng trong python, chúng ta sử dụng hàm set() trong Python bằng cách lược bỏ đi đối số trong hàm như sau:

empty_set = set()
print(empty_set)
#> set()

Lưu ý, chúng ta không thể dùng cách chỉ định trực tiếp để tạo set rỗng trong python. Ví dụ cách viết dưới đây sẽ không tạo ra một set rỗng, mà sẽ tạo ra một dictionary rỗng trong Python.

empty = {}
print(type(empty))
#>> <class 'dict'>

Do đó, chúng ta chỉ có một cách duy nhất để tạo set rỗng trong python là sử dụng hàm set() trong Python mà thôi.

Tổng kết

Trên đây Kiyoshi đã cùng bạn tìm hiểu về hàm set() và cách dùng hàm set để tạo set từ iterable trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.