標籤:rom ef6 class add 交集 包含 file section intersect
字典操作
字典一種key - value 的資料類型,使用就像我們上學用的字典,通過筆劃、字母來查對應頁的詳細內容。
文法:
info = { ‘s1‘: "jack", ‘s2‘: "musker", ‘s2‘: "lili",}
字典的特性:
- dict是無序的
- key必須是唯一的,so 天生去重
增加
>>> info[‘s4‘] = "wangwu">>> info{‘s2‘: ‘lili‘, ‘s1‘: ‘jack‘, ‘s4‘: ‘wangwu‘}View Code
修改
>>> info[‘s3‘] = "麗麗">>> info{‘s2‘: ‘lili‘, ‘s3‘: ‘麗麗‘, ‘s1‘: ‘jack‘, ‘s4‘: ‘wangwu‘}View Code
刪除
>>> info.pop(‘s1‘)‘jack‘>>> info{‘s2‘: ‘lili‘, ‘s3‘: ‘麗麗‘, ‘s4‘: ‘wangwu‘}>>> del info[‘s3‘]>>> info{‘s2‘: ‘lili‘, ‘s4‘: ‘wangwu‘}>>> info.popitem()(‘s2‘, ‘lili‘)>>> info{‘s4‘: ‘wangwu‘}View Code
尋找
>>> ‘s2‘ in info #標準用法True>>> info.get(‘s2‘) #擷取‘lili‘>>> info[‘s2‘] #同上,但是看下面‘lili‘>>> info[‘s5‘] #如果一個key不存在,就報錯,get不會,不存在只返回NoneTraceback (most recent call last): File "<pyshell#15>", line 1, in <module> info[‘s5‘]KeyError: ‘s5‘
View Code
其他動作
#values>>> info.values()dict_values([‘lili‘, ‘jack‘])#keys>>> info.keys()dict_keys([‘s2‘, ‘s1‘])#setdefault>>> info.setdefault(‘s6‘,‘musker‘)‘musker‘>>> info{‘s2‘: ‘lili‘, ‘s6‘: ‘musker‘, ‘s1‘: ‘jack‘}>>> info.setdefault(‘s2‘,‘wangwu‘)‘lili‘>>> info{‘s2‘: ‘lili‘, ‘s6‘: ‘musker‘, ‘s1‘: ‘jack‘}#update >>> info{‘s2‘: ‘lili‘, ‘s6‘: ‘musker‘, ‘s1‘: ‘jack‘}>>> b = {1:‘a‘, 2:‘b‘}>>> info.update(b)>>> info{‘s2‘: ‘lili‘, 1: ‘a‘, 2: ‘b‘, ‘s6‘: ‘musker‘, ‘s1‘: ‘jack‘}#items>>> info.items()dict_items([(‘s2‘, ‘lili‘), (1, ‘a‘), (2, ‘b‘), (‘s6‘, ‘musker‘), (‘s1‘, ‘jack‘)])#通過一個列表產生預設dict,有個沒辦法解釋的坑,少用吧這個>>> dict.fromkeys([1,2,3],‘testd‘){1: ‘testd‘, 2: ‘testd‘, 3: ‘testd‘}View Code
迴圈dict
#方法1for key in info: print(key,info[key])#方法2for k,v in info.items(): #會先把dict轉成list,資料裡大時莫用 print(k,v)
View Code集合操作
集合是一個無序的,不重複的資料群組合,它的主要作用如下:
- 去重,把一個列表變成集合,就自動去重了
- 關係測試,測試兩組資料之前的交集、差集、並集等關係
常用操作
s = set([3,5,9,10]) #建立一個數值集合 t = set("Hello") #建立一個唯一字元的集合 a = t | s # t 和 s的並集 b = t & s # t 和 s的交集 c = t – s # 求差集(項在t中,但不在s中) d = t ^ s # 對稱差集(項在t或s中,但不會同時出現在二者中) 基本操作: t.add(‘x‘) # 添加一項 s.update([10,37,42]) # 在s中添加多項 使用remove()可以刪除一項: t.remove(‘H‘) len(s) set 的長度 x in s 測試 x 是否是 s 的成員 x not in s 測試 x 是否不是 s 的成員 s.issubset(t) s <= t 測試是否 s 中的每一個元素都在 t 中 s.issuperset(t) s >= t 測試是否 t 中的每一個元素都在 s 中 s.union(t) s | t 返回一個新的 set 包含 s 和 t 中的每一個元素 s.intersection(t) s & t 返回一個新的 set 包含 s 和 t 中的公用元素 s.difference(t) s - t 返回一個新的 set 包含 s 中有但是 t 中沒有的元素 s.symmetric_difference(t) s ^ t 返回一個新的 set 包含 s 和 t 中不重複的元素 s.copy() 返回 set “s”的一個淺複製View Code
python字典與集合操作