Hàm set() trong Python

Hàm set() được tích hợp sẵn trong Python sử dụng để tạo một đối tượng set từ iterable đã cho.

Ở bài viết này, Quantrimang.com sẽ cùng bạn tìm hiểu về set(), cú pháp, tham số và các ví dụ cụ thể. Mời bạn đọc theo dõi.

Cú pháp hàm set() trong Python

set([iterable])

Tham số của hàm set()

Hàm tạo tập hợp set() trong Python có một tham số duy nhất:

  • iterable (không bắt buộc): đối tượng có thể là string, tuple, set, list, dictionary... hoặc đối tượng lặp iterator.

Giá trị trả về từ set

  • Nếu không truyền tham số, set() sẽ tạo ra một tập hợp trống.
  • Nếu iterable được truyền dưới dạng tham số, nó sẽ tạo một tập hợp các phần tử trong iterable.

Ví dụ 1: Tạo tập hợp từ string, tuple, list, range

# tập hợp rỗng
 print(set())
 
 # string
 print(set('Python'))
 
 # tuple
 # viết bởi Quantrimang.com
 print(set(('a', 'e', 'i', 'o', 'u')))
 
 # list
 print(set(['a', 'e', 'i', 'o', 'u']))
 
 # range
 print(set(range(5)))

Chạy chương trình, kết quả trả về là:

set()
 {'P', 'o', 't', 'n', 'y', 'h'}
 {'a', 'o', 'e', 'u', 'i'}
 {'a', 'o', 'e', 'u', 'i'}
 {0, 1, 2, 3, 4}

Ví dụ 2: Tạo tập hợp từ set, dictionary và frozen set

# set
 print(set({'a', 'e', 'i', 'o', 'u'}))
 
 # dictionary
 # viết bởi Quantrimang.com
 print(set({'a':1, 'e': 2, 'i':3, 'o':4, 'u':5}))
 
 # frozen set
 frozenSet = frozenset(('a', 'e', 'i', 'o', 'u'))
 print(set(frozenSet))

Chạy chương trình ta được kết quả là:

{'a', 'o', 'i', 'e', 'u'}
 {'a', 'o', 'i', 'e', 'u'}
 {'a', 'o', 'e', 'u', 'i'}

Ví dụ 3: Tạo tập hợp từ đối tượng iterator

class PrintNumber:
     def __init__(self, max):
         self.max = max
 
     def __iter__(self):
         self.num = 0
         return self
 
     def __next__(self):
         if(self.num >= self.max):
             raise StopIteration
         self.num += 1
         return self.num
 
 printNum = PrintNumber(5)
 
 # tạo set
 # viết bởi Quantrimang.com
 print(set(printNum))

Chạy chương trình ta được kết quả là:

{1, 2, 3, 4, 5}

Xem thêm: Các hàm Python tích hợp sẵn

Chủ Nhật, 01/09/2019 14:08
52 👨 179