python學習筆記day5 字典及字典操作

2021-09-11 18:53:24 字數 3753 閱讀 7392

資料型別劃分:可變資料型別,不可變資料型別

不可變資料型別 :元祖,bool,int,str,可哈西

可變資料型別:list,dict,set 不可哈西

dict的key:必須是不可變資料型別

dict的value:任意資料型別

dict優點: 二分查詢,儲存大量關係型資料,

dict特點:在3.5版本之前是無序的,在3.6版本及以後是有序的

dic = ],

true: 1,

(1, 2, 3): 'jerry',

2: '二哥',

}

1.字典操作:增添

直接新增:對於已經存在的key會覆蓋掉之前的value

setdefault(key, value ):若已經存在了key不會覆蓋之前的value

dic1 = 

dic1["high"] = 185 # 沒有的key增加

dic1["age"] = 16 # 已有的key覆蓋

dic1.setdefault("weight", 100) # 沒寫value預設為none

dic1.setdefault("age", 20) # 若已經存在key不做覆蓋

print(dic1)

2.字典操作:刪除

pop(key, 自定義返回值):會返回刪除的value值,如果沒有傳入引數會報錯,返回值可以自動以,如果沒有找到對應的key值,需要設定自定義返回值。自定義值只有在找不到對應key時,才會代替返回值

popitem():無引數,在3.5之前的版本為隨機刪除,在3.6之後的版本為預設刪除最後乙個key

clear():清除整個字典

del dic[『name』 ]:作為關鍵字根據key值來刪除,找不到會報錯,所以不常用

print(dic2.pop("age"))               # 有返回值為刪除的value

print(dic2.pop("hallo", '沒有此鍵')) # 刪除不知道有沒有的key時,可設定返回值none

# print(dic2.pop()) # 如果沒有傳引數會直接報錯

# print(dic2)

# print(dic2.popitem()) # 刪除最後乙個

# dic2.clear() # 清空

# del dic2['name1'] # 沒有該key會報錯所以不常用

del dic2 # 刪除整個字典,使dic2不存在

print(dic2)

3.字典操作:修改

直接修改:類似於增添針對存在的key值會覆蓋原始的value

dic2.update(dic1)會表把字典dic1中有但是dic2中沒有的key新增到dic2中,已經存在於兩個字典的key,則將dic1中的value複製到dic2中

dic1["age"] = 16                     # 已有的key覆蓋

dic =

dic1 =

dic.update(dic1)

4.1字典操作:查詢

直接查詢:字典的key,value的值為列表,如果查詢item為元組型別

dic1 = 

print(dic1.keys(), type(dic1.keys())) # 列表

print(dic1.values(), type(dic1.values())) # 列表

print(dic1.items(), type(dic1.items())) # 元組

for i in dic1: # 預設列印出的是key

print(i)

for i in dic1.values():

print(i)

4.2插入乙個面試賦值題:一行**修改a,b的賦值,賦值語句會自動判斷前後的變數數目來確定後面的最小單位。

a = 1

b = 2

a, b = b, a

print(a, b)

a, b = [1, 2] # 相當於自動識別,判斷最小單位,一一對應

a, b = [1, 2], [2, 3]

4.3同理就可以去除掉字典中item的括號

for a,b in dic1.items():

# a, b = i

print(a,b)

4.4字典查詢:get()

直接查詢:如果沒有找到相應key值會報錯

get(key, 自定義返回值)類似與刪除的pop()如果沒有找到相對應的key值,可以自頂乙個返回值,這樣可以避免報錯的發生,比較實用

# print(dic["name1"])                 # 找不到會報錯

print(dic.get('name1', '沒有這個鍵')) # 找不到不會報錯

5.字典巢狀:字典中可以巢狀各種其他型別資料

dic = ,

'age': 21,

}dic['age'] = 45

dic['name'][1] = dic['name'][1].upper()

print(dic['name'])

dic['py'].setdefault('weather', 'sunny')

print(dic['py'])

6.作業示例:將一段字串中的數字個數計算出來,包括連在一起的多位數字按乙個處理。

解決思路:將字母型別的詩句全部替換為空然後再按空分割,最後計算分出的個數即可

info = input('>>>')  # asdasd123asdqwe7845dsa56

for q in info:

if q.isalpha():

info = info.replace(q, ' ')

l = info.split()

print(len(l))

7.在字典中刪除key中包括『k 』的元素:字典是無法再for迴圈中刪除元素的

# 新建字典存值

dic1 =

dic2 = {}

for i in dic1:

if 'k' not in i:

dic2.setdefault(i, dic1[i])

else:

pass

print(dic2)

# 將被刪key存入列表中在進行刪除

dic1 =

li1 =

for i in dic1:

if 'k' in i:

for j in li1:

dic1.pop(j)

print(dic1)

8.字典

python學習筆記 day5

函式 返回值 描述 pow x,y x y 運算後的結果 sqrt x 返回 x 的平方根 abs x 返回數字的絕對值,如 abs 10 返回 10 fabs x 返回數字的絕對值,如 math.fabs 10 返回 10.0 ceil x 返回數字的上入整數,入 math.ceil 4.1 返回...

java學習筆記day5

面向過程 強調的是功能行為 物件導向 將功能封裝進物件,強調具備了功能的物件。面向過程 開啟冰箱 儲存進冰箱 關閉冰箱 物件導向 冰箱.開啟 冰箱.儲存 冰箱.關閉 物件導向 3個特徵 封裝 繼承 多型。找物件,建立物件,使用物件。維護物件的關係。類 描述。物件 實體。成員變數和區域性變數 作用範圍...

matlab cody學習筆記 day5

一些學習筆記 1 陣列的簡單賦值 例如 input n 5 output m is 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 5 10 15 20 25 兩個迴圈的源 function m timestables n m ones n,n for i...