Python學習日誌0220 插入排序 字典

2021-09-11 04:05:13 字數 2329 閱讀 3808

一、字典

儲存方式: 鍵值對key-value

1.建立 a =   「:」前是鍵值,即資料的代名詞(名字);「:」後是真實資料。

2.鍵的作用:確定哪一棵紅黑樹,在儲存時將鍵值和資料同時儲存在同乙個節點上。

3.鍵值可以是字串,數字,元組,不能是列表(因為鍵值是乙個固定值,但列表可以改變)

4.兩個鍵值不可相同,如果鍵值相同,上乙個資料會被覆蓋。 

5.value值的型別:沒有限制,可以是任意型別

6.字典操作

b = 

#新增b["tel"] = 138

#修改b["tel"] = 139

#新增和更新

b.update() #只能新增乙個字典,但可以在乙個字典中新增或更新多個資料

#刪除del b["name"]

b.pop("name")

#刪除整個字典

del b

#查詢print(b["age"])

#查詢所有鍵值

print(b.keys())

#查詢所有資料

print(b.values())

#查詢所有鍵值和資料

print(b.items())

#迴圈列印所有鍵值和資料

for key,value in b.items():

print(key,value)

#清除b.clear()

#刪除(可以不傳引數,預設刪除最後一項)

b.popitem()

7.字典內建函式

a = 

b =

#判斷長度

print(len(b))

#轉字串

print(str(b))

#判斷是否存在

print("name" in b.keys())

8.字典排序

(1)按資料排序

d = 

ds = sorted(d.items(),key = lambda x:x[1])

print(ds)

import operator

ds = sorted(d.items(),key = operator.itemgetter(1),reverse=true)

print(ds)

#注:reverse=true時為倒序排序,reverse=false時為正序排序

f = zip(d.values(),d.keys())

ds = sorted(f)

print(ds)

注:排序後資料在前,鍵值在後

(2)按鍵值排序時,必須保證型別相同,按自然順序排序。

9.字典底層訪問原理

正常想要獲取dict中的值,首先要知道key通過dict[key]獲取對應的value,在雜湊表中為了達到這種操作, 首先會計算key的hash值即雜湊值,把這個值最低的幾位數字當作偏移量,在雜湊表裡 查詢表元(具體取幾位,得看當前雜湊表的大小)。若找到表元為空,異常keyerror,不為空, 表元裡會有一對 found_key:found_value。這時候 python 會檢驗 search_key == found_key 是否為真, 如果它們相等的話,就會返回 found_value。如果兩個值不匹配,則是雜湊衝突。 而雜湊表本身的索引又只依賴於這個數字的一部分。為了解決雜湊衝突,演算法會在雜湊值中另外 再取幾位,然後用特殊的方法處理一下,把新得到的數字再當作索引來尋找表元。 若這次找到的表元是空的,則同樣丟擲 keyerror;若非空,或者鍵匹配,則返回這 個值;或者又發現了雜湊衝突,則重複以上的步驟。

二、插入排序

#定義插入排序方法,對列表list進行排序

def insertsorted(list):

#外層迴圈:確定從哪乙個數開始迴圈

for i in range(1,len(list)):

#定義臨時變數,取出即將進行比較的數

temp = list[i]

flag = false

#裡層迴圈:從i的前一位到列表首位進行比較。由於是倒序比較,所以步長為-1

for j in range(i-1,-1,-1):

#如果前乙個值大於取出的值,則把前乙個值後移一位

if list[j]>list[i]:

list[j+1] = list[j]

else:

list[j+1] = temp

flag = true

break

#當取出的數比前面所有的數都小,則插入到首位

if not flag:

list[0] = temp

0220 別用趕路的心態學習

學習和旅遊,其實挺像的。比較現代人的旅遊,基本是下車拍照 上車睡覺。炫耀的是去過哪哪哪,有朋友圈為證。可如果你問些旅遊地稍微有深度的問題,基本就 gg 了。學習也是類似,我會 我學過 很多也都是朋友圈曬照級別的。真要用 解決某個問題 做出乙個產品,基本就 gg 了。花一年時間走遍世界,可能不如在乙個...

python學習日誌

1 python中range xrange 和np.arange 區別 range 多用於迴圈,返回乙個range物件,若想要返回乙個list則前面加上list轉換 arange 是numpy中的函式,np.range 返回乙個array型別的物件,可以使用小數步長 xrange 返回xrange ...

Python學習日誌

元組不可修改,但是可以給儲存元組的變數賦值。現在每學乙個東西就會莫名的拿去和之前學過的東西做一比較,python是真的太舒服了。當然寫for or if 都是要記得後面的 而且也可以進行級聯,只不過是if,elfe,else。還可以用in來判斷某個元素在沒有某個列表裡面。字典是一系列鍵值對,新增起來...