資料型別劃分:可變資料型別,不可變資料型別
不可變資料型別 :元祖,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...