Tạo set trong python | Laptrinhcanban.com

Tạo set trong python

Hướng dẫn cách tạo set trong python. Bạn sẽ học được các cách tạo set trong python bằng các cách như chỉ định giá trị cho set ,cách sử dụng biến, cách tạo set trong python từ các đối tượng khác với hàm set() hay hàm frozenset() trong python sau bài học này.

Tạo set trong python bằng cách chỉ định giá trị

Cách cơ bản nhất để tạo set trong python đó là chỉ định giá trị của các phần tử và đặt chúng giữa cặp dấu ngoặc nhọn {} bằng cú pháp sau đây:

{ phần tử 1, phần tử 2, phần tử 3,…}

Ví dụ:

set = {1, 2, 3, 4, 5}
print(set)
#>> {1, 2, 3, 4, 5}

Lưu ý rằng việc sử dụng {} cũng giống như khi tạo dictionary, nên bạn cần chú ý phân biệt chúng ( điểm khác nhau là khi tạo dictionary bạn cần cần đặt key:value giữa cặp dấu {}).

Lại nữa, các phần tử trong set chỉ có thể được tạo bởi các giá trị hashable. Một giá trị được gọi là hashable nếu nó không bao giờ thay đổi trong suốt thời gian tồn tại của nó. Cụ thể chúng ta chỉ có thể chỉ định các phần tử trong set bằng một trong ba đối tượng bất biến Immutable (không thể thay đổi) trong python gồm Số, Chuỗi, set mà thôi.

{10, 30, 50}
{"Orange", "Lemon", "Peach"}
{(1,2,3), ('HN', 'NB', 'TH')}

Giá trị của các phần tử trong set cũng có thể thuộc nhiều kiểu dữ liệu khác nhau.

{1, "Hello", (3, "Tokyo")}

Bạn cũng có thể tạo set và gán vào một biến.

myset = {"Orange", "Lemon", "Peach"}

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'>

Để tạo set rỗng trong python, chúng ta sử dụng hàm set() trong Python như sau:

empty_set = set()
```

* Xem thêm : [Hàm set() trong python và cách tạo set từ iterable](../)

## Chú ý khi tạo set trong python
Do tính chất của set vốn không tồn tại thứ tự của các phần tử trong nó, nên trong trường hợp tạo một set chứa nhiều phần tử, bạn sẽ không thể biết các phần tử này được sắp xếp theo thứ tự ra sao trong set.
Ví dụ:
```python
myset = {"H", "a", "p", "y"}

print(myset)
#>> {'p', 'y', 'H', 'a'}

Bạn có thể thấy thứ tự của các phần tử trong set hoàn toàn khác so với thứ tự phần tử khi chúng ta khai báo set đó.

Lại nữa, cũng do set trong python không tồn tại phần tử trùng lặp, do đó khi khai báo một set bằng các giá trị trùng lặp , thì các giá trị này sẽ được coi như một giá trị duy nhất mà thôi.
Ví dụ:

myset = {"H", "a", "p", "p", "y"}

print(myset)
#>> {'H', 'a', 'y', 'p'}

Tạo set trong python bằng cách sử dụng biến

Khi chỉ định giá trị các phần tử của set, ngoài cách chỉ định giá trị trực tiếp, chúng ta còn có thể gán giá trị đó vào biến rồi dùng biến đó để tạo set trong python.

x = 10
y = 20
numset = {x, y}
print(numset)

#>> {10, 20}

Lưu ý là với cách tạo set này, không phải là chúng ta tạo ra mối quan hệ tham chiếu giữa biến và phần tử trong set, mà chỉ là đơn giản sử dụng giá trị của biến đó để tạo set mà thôi.
Do đó, kể cả khi giá trị biến thay đổi thì set đã tạo cũng sẽ không thay đổi.

x = 9
y = 18
numset = {x, y}
print(numset)

#>> {9, 18}

x = 20
print(numset)

#>> {9, 18}

Tạo set trong python từ các đối tượng khác | hàm set()

Bằng cách sử dụng hàm set() trong python, chúng ta có thể biến các đối tượng khác thành dạng set giống như ví dụ dưới đây:

list = [1, 2, 3, 4, 5]
set1 = set(list)
print(set1)

tuple = (1, 2, 3, 4, 5)
set2 = set(tuple)
print(set2)

Kết quả:

{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}

Lưu ý khi tạo set trong python từ dictionary, do trong dictionary tồn tại cả key và value, nên bạn cần chỉ định sử dụng giá trị nào để tạo set bằng cách sử dụng kèm thêm các phương thức cơ bản trong dictionary như keys(), values() và items().
Ví dụ:

dict = {'HN':900, 'TK':370, 'ND':250, 'NB':230, 'TH':150}
set2 = set(dict.keys())
print(set2)
set3 = set(dict.values())
print(set3)
set4 = set(dict.items())
print(set4)

Kết quả:

{'HN', 'TK', 'TH', 'NB', 'ND'}
{900, 230, 370, 150, 250}
{('TK', 370), ('HN', 900), ('NB', 230), ('TH', 150), ('ND', 250)}

Tạo set bất biến trong python | hàm frozenset()

Mặc dù kiểu dữ liệu set trong python vốn thuộc dạng mutable (có khả năng thay đổi), nhưng chúng ta có thể chuyển dạng set từ mutable sang dạng immutable (không có khả năng thay đổi) bằng cách sử dụng hàm frozenset().

Sau khi tạo ra set bằng phương pháp này, set được tạo ra sẽ không có khả năng thêm, xóa hay thay đổi.

Về cách sử dụng hàm frozenset() để tạo set thì cũng tương tự như với hàm set() ở phần trên.

list = [0, 1, 1.0, -1,  2, -2,  3, 3.00, -3, 3.0, 4, -4, -4, 5, -5]
set = frozenset(list)
print(set)

#>> frozenset({0, 1, 2, 3, 4, 5, -2, -5, -4, -3, -1})

Tạo set trong python bằng cách sử dụng List comprehension trong Python

Giống như list, chúng ta có thể sử dụng List comprehension trong Python để tạo set, bằng việc thay thế cặp dấu [] của list sang {}.

set = {i**2 for i in range(5)}
print(set)

#>> {0, 1, 4, 9, 16}

Tổng kết và thực hành

Trên đây Kiyoshi đã hướng dẫn bạn về các cách tạo set trong Pythonrồ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.