set

Báo cáo vấn đề Xem nguồn Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Thử nghiệm. API này đang trong giai đoạn thử nghiệm và có thể thay đổi bất cứ lúc nào. Vui lòng không phụ thuộc vào giá trị này. Bạn có thể bật tính năng này trên cơ sở thử nghiệm bằng cách thiết lập --experimental_enable_starlark_set.

Loại tập hợp có thể thay đổi tích hợp sẵn. Ví dụ về biểu thức tập hợp:

x = set()           # x is an empty set
y = set([1, 2, 3])  # y is a set with 3 elements
3 in y              # True
0 in y              # False
len(x)              # 0
len(y)              # 3

Một tập hợp được dùng trong ngữ cảnh Boolean là đúng nếu và chỉ khi tập hợp đó không trống.

s = set()
"non-empty" if s else "empty"  # "empty"
t = set(["x", "y"])
"non-empty" if t else "empty"  # "non-empty"

Các phần tử của một tập hợp phải có thể băm; x có thể là một phần tử của một tập hợp nếu và chỉ khi x có thể được dùng làm khoá của một tập hợp.

Bản thân tập hợp không thể băm được; do đó, bạn không thể có một tập hợp với một tập hợp khác làm phần tử.

Bạn không thể truy cập vào các phần tử của một tập hợp theo chỉ mục, nhưng bạn có thể lặp lại các phần tử đó và có thể lấy danh sách các phần tử của một tập hợp theo thứ tự lặp lại bằng cách sử dụng hàm tích hợp sẵn list(). Giống như đối với danh sách, việc thay đổi một tập hợp trong khi tập hợp đó đang được lặp lại sẽ gây ra lỗi. Thứ tự lặp lại khớp với thứ tự chèn:

s = set([3, 1, 3])
s.add(2)
# prints 3, 1, 2
for item in s:
    print(item)
list(s)  # [3, 1, 2]

Tập hợp s bằng t nếu và chỉ khi t là một tập hợp chứa cùng các phần tử, có thể có thứ tự lặp lại khác. Cụ thể, một tập hợp là not bằng danh sách phần tử của tập hợp đó.

Các tập hợp không được sắp xếp; các phép toán <, <=, >>= không được xác định cho các tập hợp và không thể sắp xếp danh sách các tập hợp – không giống như trong Python.

Toán tử | trên hai tập hợp trả về tập hợp hợp nhất của hai tập hợp: một tập hợp chứa các phần tử có trong một hoặc cả hai tập hợp ban đầu. Toán tử | có phiên bản gán mở rộng; s |= t thêm vào s tất cả các phần tử của t.

set([1, 2]) | set([3, 2])  # set([1, 2, 3])
s = set([1, 2])
s |= set([2, 3, 4])        # s now equals set([1, 2, 3, 4])

Toán tử & trên hai tập hợp trả về giao của hai tập hợp: một tập hợp chỉ chứa các phần tử có trong cả hai tập hợp ban đầu. Toán tử & có một phiên bản gán tăng cường; s &= t xoá khỏi s tất cả các phần tử không tìm thấy trong t.

set([1, 2]) & set([2, 3])  # set([2])
set([1, 2]) & set([3, 4])  # set()
s = set([1, 2])
s &= set([0, 1])           # s now equals set([1])

Toán tử - trên hai tập hợp trả về sự khác biệt của hai tập hợp: một tập hợp chứa các phần tử có trong tập hợp bên trái nhưng không có trong tập hợp bên phải. Toán tử - có phiên bản gán tăng cường; s -= t xoá khỏi s tất cả các phần tử tìm thấy trong t.

set([1, 2]) - set([2, 3])  # set([1])
set([1, 2]) - set([3, 4])  # set([1, 2])
s = set([1, 2])
s -= set([0, 1])           # s now equals set([2])

Toán tử ^ trên hai tập hợp trả về sự khác biệt đối xứng của hai tập hợp: một tập hợp chứa các phần tử được tìm thấy trong đúng một trong hai tập hợp ban đầu, nhưng không có trong cả hai. Toán tử ^ có phiên bản gán tăng cường; s ^= t xoá khỏi s mọi phần tử của t có trong s và thêm vào s mọi phần tử của t không có trong s.

set([1, 2]) ^ set([2, 3])  # set([1, 3])
set([1, 2]) ^ set([3, 4])  # set([1, 2, 3, 4])
s = set([1, 2])
s ^= set([0, 1])           # s now equals set([2, 0])

Hội viên

thêm

None set.add(element)

Thêm một phần tử vào tập hợp.

Tham số

Thông số Mô tả
element required
Phần tử cần thêm.

xóa

None set.clear()

Xoá tất cả phần tử của tập hợp.

chênh lệch

set set.difference(*others)

Trả về một tập hợp mới có thể thay đổi chứa sự khác biệt của tập hợp này với các tập hợp khác.

Ví dụ:

set([1, 2, 3]).intersection([1, 2], [2, 3]) == set([2])

Tham số

Thông số Mô tả
others bắt buộc
Tập hợp, trình tự hoặc tập hợp từ điển.

difference_update

None set.difference_update(*others)

Xoá mọi phần tử có trong bất kỳ tập hợp nào khác khỏi tập hợp này.

Ví dụ:

x = set([1, 2, 3, 4])
x.difference_update([2, 3], [3, 4])
# x is now set([1])

Tham số

Thông số Mô tả
others bắt buộc
Tập hợp, trình tự hoặc tập hợp từ điển.

hủy

None set.discard(element)

Xoá một phần tử khỏi tập hợp nếu có.

Tham số

Thông số Mô tả
element required
Phần tử cần loại bỏ.

giao điểm

set set.intersection(*others)

Trả về một tập hợp mới có thể thay đổi chứa giao của tập hợp này với các tập hợp khác.

Ví dụ:

set([1, 2, 3]).intersection([1, 2], [2, 3]) == set([2])

Tham số

Thông số Mô tả
others bắt buộc
Tập hợp, trình tự hoặc từ điển.

intersection_update

None set.intersection_update(*others)

Xoá mọi phần tử không có trong tất cả các phần tử khác khỏi tập hợp này.

Ví dụ:

x = set([1, 2, 3, 4])
x.intersection_update([2, 3], [3, 4])
# x is now set([3])

Tham số

Thông số Mô tả
others bắt buộc
Tập hợp, trình tự hoặc tập hợp từ điển.

isdisjoint

bool set.isdisjoint(other)

Trả về true nếu tập hợp này không có phần tử nào chung với tập hợp khác.

Ví dụ:

set([1, 2]).isdisjoint([3, 4]) == True
set().isdisjoint(set()) == True
set([1, 2]).isdisjoint([2, 3]) == False

Tham số

Thông số Mô tả
other bắt buộc
Một tập hợp, trình tự hoặc từ điển.

issubset

bool set.issubset(other)

Trả về true nếu tập hợp này là một tập hợp con của tập hợp khác.

Ví dụ:

set([1, 2]).issubset([1, 2, 3]) == True
set([1, 2]).issubset([1, 2]) == True
set([1, 2]).issubset([2, 3]) == False

Tham số

Thông số Mô tả
other bắt buộc
Một tập hợp, trình tự hoặc từ điển.

issuperset

bool set.issuperset(other)

Trả về true nếu tập hợp này là tập hợp con của tập hợp khác.

Ví dụ:

set([1, 2, 3]).issuperset([1, 2]) == True
set([1, 2, 3]).issuperset([1, 2, 3]) == True
set([1, 2, 3]).issuperset([2, 3, 4]) == False

Tham số

Thông số Mô tả
other bắt buộc
Một tập hợp, trình tự hoặc từ điển.

nhạc pop

unknown set.pop()

Xoá và trả về phần tử đầu tiên của tập hợp. Không thành công nếu tập hợp này trống.

xoá

None set.remove(element)

Xoá một phần tử (phải có trong tập hợp) khỏi tập hợp. Không thành công nếu phần tử không có trong tập hợp.

Tham số

Thông số Mô tả
element bắt buộc
Phần tử cần xoá.

symmetric_difference

set set.symmetric_difference(other)

Trả về một tập hợp mới có thể thay đổi chứa sự khác biệt đối xứng của tập hợp này với một tập hợp, trình tự hoặc từ điển khác.

Ví dụ:

set([1, 2, 3]).symmetric_difference([2, 3, 4]) == set([1, 4])

Tham số

Thông số Mô tả
other bắt buộc
Một tập hợp, trình tự hoặc từ điển.

symmetric_difference_update

None set.symmetric_difference_update(other)

Trả về một tập hợp mới có thể thay đổi chứa sự khác biệt đối xứng của tập hợp này với một tập hợp, trình tự hoặc từ điển khác.

Ví dụ:

set([1, 2, 3]).symmetric_difference([2, 3, 4]) == set([1, 4])

Tham số

Thông số Mô tả
other bắt buộc
Một tập hợp, trình tự hoặc từ điển.

union

set set.union(*others)

Trả về một tập hợp mới có thể thay đổi chứa tập hợp hợp nhất của tập hợp này với các tập hợp khác.

Ví dụ:

set([1, 2]).union([2, 3, 4], [4, 5]) == set([1, 2, 3, 4, 5])

Tham số

Thông số Mô tả
others bắt buộc
Tập hợp, trình tự hoặc tập hợp từ điển.

cập nhật

None set.update(*others)

Thêm các phần tử tìm thấy trong các tập hợp khác vào tập hợp này.

Ví dụ:

x = set([1, 2])
x.update([2, 3], [3, 4])
# x is now set([1, 2, 3, 4])

Tham số

Thông số Mô tả
others bắt buộc
Tập hợp, trình tự hoặc tập hợp từ điển.