Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Sets giải thích: Tính duy nhất, Bất biến, và Các phép toán

Python Set là collection type chứa tập hợp không có thứ tự (unordered) các object duy nhất (unique) và bất biến (immutable). Tức: set không chứa duplicate, và item không thể thay đổi sau khi tạo.

Lưu ý: Item của set là immutable (không thay đổi item), nhưng set bản thân là mutable (có thể add/remove item).

Thứ tự không được duy trì. Mỗi lần print cùng một set, thứ tự item có thể khác nhau.

Tạo set dùng ngoặc nhọn {}, tách item bằng dấu phẩy ,.

Giống list, set có thể chứa nhiều kiểu object khác nhau (mixed types):

mixedTypesSet = {'one', True, 13, 2.0}

Tạo Set

colorsSet = {"red", "green", "blue"}
print(colorsSet)  # {'red', 'blue', 'green'} (thứ tự có thể khác)

Truy cập Item của Set

Không dùng index truy cập (vì unordered, không có index). Dùng for loop duyệt:

colorsSet = {"red", "green", "blue"}
for c in colorsSet:
    print(c)
# green, red, blue (thứ tự ngẫu nhiên)

Thêm Item vào Set

  • Thêm 1 item: add()
  • Thêm nhiều item: update()

Thêm một item

colorsSet = {"red", "green", "blue"}
colorsSet.add("yellow")
print(colorsSet)  # {'blue', 'red', 'green', 'yellow'}

Thêm nhiều item

colorsSet = {"red", "green", "blue"}
colorsSet.update(["yellow", "orange", "white"])
print(colorsSet)  # {'white', 'red', 'green', 'yellow', 'orange', 'blue'}

Xóa Item khỏi Set

Hai method: remove() và discard().

  • remove(): xóa item chỉ định. Ném lỗi nếu item không tồn tại.
  • discard(): xóa item chỉ định. KHÔNG ném lỗi nếu item không tồn tại.
colorsSet = {"red", "green", "blue", "orange"}
colorsSet.remove("orange")
print(colorsSet)  # {'blue', 'green', 'red'}

Xóa tất cả phần tử (Empty Set)

Dùng clear():

colorsSet = {"red", "green", "blue", "orange"}
colorsSet.clear()
print(colorsSet)  # set()

Xóa Set hoàn toàn

Dùng del keyword:

colorsSet = {"red", "green", "blue", "orange"}
del colorsSet
print(colorsSet)  # NameError

Độ dài Set

Dùng len():

colorsSet = {"red", "green", "blue", "orange"}
print(len(colorsSet))  # 4

Nối hai Set

Dùng union() trả về set mới chứa item từ cả hai:

colorsSet = {"red", "green", "blue", "orange"}
numbersSet = {1, 2, 3, 4}
numbersAndColors = colorsSet.union(numbersSet)
print(numbersAndColors)
# {1, 2, 'blue', 3, 4, 'green', 'red', 'orange'}