“””
Python 初始化 set 集合
Python set 集合初始化元素使用 {} 來包住元素,也可以帶入 set() 建構子,
但若要建立空集合要使用 set(),使用 s={} 是會建立空 dict,不要搞錯囉!
Python 官方文件寫明 set 物件是無序,即使你印出來時發現是按照順序的,
所以在使用 set 時請記得不保證有序的,
另外 set 集合裡是不會包含重複的元素,
兩個集合的交集
這邊介紹 Python 怎麼取出
兩個集合的交集(intersection),
Python 取 set 的交集要使用
& 符號就會取出兩集合中相同的元素,
交集的用法範例如下,
“””
fruits1={“apple“,”banana“,”orange”,”lemon”}
fruits2={“tomato”,”apple“,”banana“}
print(fruits1 & fruits2)
print(fruits2 & fruits1)
#你也可以使用 intersection()
#來取得交集,intersection() 用法範例如下,
nums1={1,2,3,4,5}
nums2={2,4,6,8,10}
print(nums1.intersection(nums2))
print(nums2.intersection(nums1))
#執行結果:
“””
兩個集合的聯集
這邊介紹 Python 怎麼取出兩個集合的聯集(union),Python 取 set 的聯集
要使用 | 符號就會取出兩集合中所有的元素,聯集的用法範例如下,
“””
fruits1={“apple”,”banana”,”orange”,”lemon”}
fruits2={“tomato”,”apple”,”banana”}
print(fruits1 | fruits2)
print(fruits2 | fruits1)
#你也可以使用 union() 來取得聯集,union() 用法範例如下,
nums1={1,2,3,4,5}
nums2={2,4,6,8,10}
print(nums1.union(nums2))
print(nums2.union(nums1))
“””
兩個集合的差集
這邊介紹 Python 怎麼取出
兩個集合的差集(difference),
Python 取 set 的差集要使用 – 符號
就會取出集合與另外一個集合的差集,
舉例來說,fruits1-fruits2
會得到 fruits1 集合元素且不包含 fruits2 集合的元素,
如果是 fruits2-fruits1 會得到
fruits2 集合元素且不包含 fruits1 集合的元素,
差集的用法範例如下,
“””
fruits1={“apple”,”banana”,”orange“,”lemon“}
fruits2={“orange“,”lemon“,”tomato”}
print(fruits1 – fruits2)
print(fruits2 – fruits1)
#你也可以使用 difference() 來取得差集,
#difference() 用法範例如下,
nums1={1,2,3,4,5}
nums2={4,5,6,7,8}
print(nums1.difference(nums2))
print(nums2.difference(nums1))
“””
兩個集合的對稱差集
這邊介紹 Python 怎麼取出兩個集合的
對稱差集(symmetric difference),
Python 取 set 的對稱差集要使用 ^ 符號
就會取出兩集合集合不重複的元素或非交集的元素,
對稱差集的用法範例如下,
“””
fruits1={“apple”,”banana”,”orange“,”lemon“}
fruits2={“orange“,”lemon“,”tomato”}
print(fruits1 ^ fruits2)
print(fruits2 ^ fruits1)
#你也可以使用 symmetric_difference()
#來取得對稱差集,
#symmetric_difference() 用法範例如下,
nums1={1,2,3,4,5}
nums2={4,5,6,7,8}
print(nums1.symmetric_difference(nums2))
print(nums2.symmetric_difference(nums1))
“””
set 集合加入元素
Python set 集合使用 add() 來加入新元素,
用法如下,
要注意集合不會包含重複的元素唷!
set使用 .add(元素)
list使用 .append(元素)
dict使用dic[key]=value
“””
s={1, 2, 3, 4, 5}
s.add(6)
s.add(7)
s.add(7)
print(s)
#交集,聯集,差集,對稱差集
def inputData(set1):
while True:
a=eval(input())
if a != -9999:
set1.add(a)
else:break
return set1
def operation(set11,set22):
print()
print(“set1 | set2 =”, set11 | set22)
print(“set1 & set2 =”, set11 & set22)
print(“set1 – set2 =”, set11 – set22)
print(“set1 ^ set2 =”, set11 ^ set22)
def main():
print(“Input set1 data: “)
set1=set()
inputData(set1)
print(“Input set2 data: “)
set2=set()
inputData(set2)
print(“set1:”,set1)
print(“set2:”,set2)
operation(set1,set2)
main()