day05

字典

鍵值對數據 dict dict = {'鍵':'值'}python

存儲數據 字典的查找快一些(消耗的內存大)面試

不可哈希的,就是可變的數據code

可變的數據不能哈希 不可變的數據能哈希對象

字典的鍵:不可變數據 類型 鍵不能重複 重複的話就會把值覆蓋索引

字典的值 :能夠隨意內存

查 :rem

print(dic['25'])             #經過鍵去查找值

增:get

dic[11] = '小米'
dic.setdefault(11,'華爲')
#1.先去字典中經過11這個鍵去查有沒有        就是None
#2.若是是值  就不進行添加
#3.若是是None,就添加返回的是添加的值

刪:it

del dic          #刪除整個字典
del dic[鍵]      #經過鍵刪除
dic.pop('鍵')    #pop經過指定鍵刪除   pop也有返回值   返回的被刪除的值
dic.clear()      #清空
dic.popitem()    #隨機刪除    python3.6刪除最後一個    python3.5中隨機刪除

改:class

dic.update(字典)更新   被更新的內容若是在要更新的內容中那值就回覆蓋
兩個字典,都沒同樣的是合併

dic2['33'] = 'tsp'是字典中沒有的時候才叫增,若是字典中這個鍵存在就叫作修改

查:

print(dic2['33'])       #經過鍵查找 若是鍵不存在 就報錯
print(dic2.get(2))      #經過鍵查找 若是不存在不會報錯返回None
print(dic.setdefault('33')) #不存在返回None

其餘操做:

dic2 = {'33':'gg','66':'pp'}
for i in dic2:
    print(i)
for i in dic2:
print(dic2.get(i))
print(dic2.keys())高仿列表dic_key(['33','66'])不能使用下標
print(dic2.vaules())高仿列表dic_value(['gg','pp'])不能使用下標
for i in dic2.values():
    print(i)
for i in dic2.items():
    print(i)
for k,v in dic.items():
    print(k)
    print(v)

解構:

a,b,c = 1,2,3           '456'   [7,8,9]  (7,8,9)   {'1':8,'2':9,'3':0}
# 面試題        用一行交換a,b的值
a = 10 
b = 20 
a,b = b,a
print(a,b)
keys()      #獲取全部的鍵  高仿列表 
values()    #獲取全部的值 高仿列表
item()      #獲取鍵值 以元組的形式顯示

補充:

dic2 = {'33':'gg','66':'pp'}
ret = dic2.get('qq',你傻啊,沒有還要拿)
ret = dic2.pop('qq','沒有')

這是坑:
dic3 =dict.fromkeys([1,2,3,4,5,6],[1,2,3])
print(dic3)
第一個參數是鍵  要是可迭代的對象
第二個參數是值,值是無所謂是由於建立的新字典的值用的都是一個值是一個可變數據類型

字典的嵌套:

dic1 = dic['陳冠希']['阿嬌']

集合:

set  集合  存儲數據   自然去重   無序不能使用索引
se = {1,2,3,45,234,12,32,12}
列表有點 沒有值的字典
面試題
lst = [1,2,3,4,12,3,4]去重
print(list(set(lst)))
se.add(6)
se.update('123')   可迭代的對象
se.clear
se.pop
se.remove(4)       經過內容刪除
s1 = {'劉能','趙四','皮革廠'}
s2 = {'劉科長','馮鄉長','皮革廠'}
s1 & s2    交集
s1 | s2    並集
s1 - s2    差集               不顯示共有的
s1 ^ s2    反差集              顯示不共有的

s1 = frozenset(['','','',''])
print(s1)
相關文章
相關標籤/搜索