1. 程式人生 > >python字典與集合操作

python字典與集合操作

成員 創建 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: 
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不會,不存在只返回None
Traceback (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

技術分享
#方法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字典與集合操作