Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。
set():建立集合
語法:
set() # 空集合
set(iterable) # 從可迭代物件建立集合set() 用來建立一個集合(set)。集合的特色是:元素不重複、無序、可以做數學上的集合運算(聯集、交集、差集等)。# 空集合(注意:{} 是空字典,不是空集合!)
empty = set()
print(empty) # set()
print(type(empty)) # <class 'set'>
# 用字面值建立非空集合
s = {1, 2, 3}
print(s) # {1, 2, 3}自動去除重複
集合最常見的用途就是去除重複元素。
# 從列表去重
nums = [1, 2, 2, 3, 3, 3, 4]
unique = set(nums)
print(unique) # {1, 2, 3, 4}
# 從字串去重
chars = set("hello")
print(chars) # {'h', 'e', 'l', 'o'}(順序不保證)
# 轉回列表(如需要有序結果)
sorted_unique = sorted(set(nums))
print(sorted_unique) # [1, 2, 3, 4]集合運算
集合支援數學上的集合運算,非常方便。
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
# 聯集(union)
print(a | b) # {1, 2, 3, 4, 5, 6}
print(a.union(b))
# 交集(intersection)
print(a & b) # {3, 4}
print(a.intersection(b))
# 差集(difference)
print(a - b) # {1, 2}
print(a.difference(b))
# 對稱差集(symmetric difference)
print(a ^ b) # {1, 2, 5, 6}
print(a.symmetric_difference(b))集合的基本操作
s = {1, 2, 3}
# 新增元素
s.add(4)
print(s) # {1, 2, 3, 4}
# 移除元素
s.discard(2) # 不存在也不報錯
s.remove(3) # 不存在會報 KeyError
print(s) # {1, 4}
# 成員檢查(非常快,O(1))
print(1 in s) # True
print(99 in s) # False小小綜合例子
# 找出兩個班級的共同選課
class_a = set(["數學", "英文", "物理", "化學"])
class_b = set(["英文", "生物", "化學", "歷史"])
# 兩班都有選的課
common = class_a & class_b
print(f"共同選課:{common}") # {'英文', '化學'}
# 只有 A 班選的
only_a = class_a - class_b
print(f"只有A班:{only_a}") # {'數學', '物理'}
# 所有課程(不重複)
all_courses = class_a | class_b
print(f"所有課程:{all_courses}")
# {'數學', '英文', '物理', '化學', '生物', '歷史'}
print(f"共 {len(all_courses)} 門不同的課") # 共 6 門不同的課









