1 #!/usr/bin/env python 2 # -*- coding:utf8 -*- 3 4 # set集合 只可放不可變的數據類型,自己是可變數據類型,無序 5 6 # s = {1,2,3,[1,2,3],"abc",{'k':'v'},(1,2,3,)} 7 s = {1,2,3,"abc",(1,2,3,)} 8 print(s) 9 10 # 拷貝 11 ss = s.copy() 12 print(ss) 13 14 # 添加, 一次只可添加單個元素,若參數爲可迭代類型 則看成整個元素添加 15 s.add("123") 16 print(s) 17 18 # 清除 19 s.clear() 20 print(s) 21 22 s1 = {"a", "b", "c"} 23 s2 = {"b", "c", "d"} 24 25 # 獲取差集,參數只可爲可迭代參數類型,可以使用"-"代替 26 s = s1.difference(s2) 27 print(s, s1, s2, sep="\t") 28 print(s1 - s2) 29 30 # 獲取差集 並更新原來的集合 31 # s1.difference_update(["a", "b"]) 32 # print(s1) 33 34 # 移除節點信息 若節點不存在 不作任何處理 35 # s1.discard("a") 36 # print(s1) 37 # s1.discard("d") 38 # print(s1) 39 40 # 交集 & 41 s = s1.intersection(s2) 42 print(s) 43 print(s1&s2) 44 45 # 獲取交集並更新 46 # s1.intersection_update("a") 47 # print(s1) 48 49 # 兩個集合是否有一個爲空 50 v = set().isdisjoint({}) 51 print(v) 52 53 # s1是否爲傳入參數的子集 54 v = s1.issubset("abc") 55 print(v) 56 57 # s1是否爲傳入參數的父級 58 v = s1.issuperset("abcd") 59 print(v) 60 61 # 刪除 隨機 62 # s1.pop() 63 # print(s1) 64 65 # 刪除集合中的一個元素 若元素不存在則報錯 66 # s1.remove("a") 67 # print(s1) 68 69 print(s1) 70 # 交叉補集 "^" 獲取不是兩個集合共有的 71 s = s1.symmetric_difference(s2) 72 print(s) 73 print(s1^s2) 74 # 獲取交叉補集並更新 75 # s1.symmetric_difference_update(s2) 76 # print(s1) 77 78 # 並集 "|" 79 s = s1.union(s2) 80 print(s) 81 print(s1|s2) 82 83 # 添加 可批量添加 84 s1.update(["ef", "gg"]) 85 print(s1)
1 #!/usr/bin/env python 2 # -*- coding:utf8 -*- 3 4 # def test() : 5 # print("test Method") 6 # test() 7 8 """ 9 同名函數 後面的會覆蓋前面的 10 """ 11 def test(x) : 12 print(x) 13 # test() 14 test(1) 15 16 """ 17 位置優先級要高於參數名賦值 18 """ 19 def test(x, y, z) : 20 print(x) 21 print(y) 22 print(z) 23 test(1,2,3) 24 test(x=1,z=2,y=4) 25 test(1,z=2,y=8) 26 # test(1,x=1,y=1,z=3) #報錯 27 28 """ 29 * 至關於列表 可傳入多個值 30 """ 31 def test(x, *y) : 32 print(x) 33 print(*y) 34 test("a", ["bdc", "aaa"], ["a", "b"]) 35 36 """ 37 ** 至關於字典 38 *類型參數 必須在 **類型參數前 39 必傳參數不可看成最後一個參數傳入 40 """ 41 def test(x, *y, **z) : 42 print(x) 43 print(y) 44 print(z, z.get("k")) 45 test(1,1,2,{'k':'v'},k=1) 46 47 # def test(x, **y, *z) : 48 # pass 49 50 # def test (*x, **y, z) : 51 # pass 52 53 #必須指定以字典方式傳入y值 54 def test(*x, y, **z) : 55 print("Method") 56 print(x) 57 print(y) 58 print(z) 59 pass 60 # test(1,1,1,y=1,y=2) 61 test(1,1,1,d=1,y=2)