python字典與集合操作
阿新 • • 發佈:2017-10-11
成員 創建 error: 技術分享 blog lap 關系 size pen
字典操作
字典一種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‘: ‘View Codelili‘, ‘s4‘: ‘wangwu‘} >>> info.popitem() (‘s2‘, ‘lili‘) >>> info {‘s4‘: ‘wangwu‘}
查找
>>> ‘s2‘ in info #標準用法 True >>> info.get(‘s2‘) #獲取 ‘lili‘ >>> info[‘s2‘] #同上,但是看下面 ‘lili‘ >>> info[‘s5‘] #如果一個key不存在,就報錯,get不會,不存在只返回NoneView CodeTraceback (most recent call last): File "<pyshell#15>", line 1, in <module> info[‘s5‘] KeyError: ‘s5‘
其他操作
#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
#方法1 for key in info: print(key,info[key]) #方法2 for 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字典與集合操作