字典及插入排序

2021-09-11 03:50:31 字數 2683 閱讀 6437

'''

一,複習

元組 a = ()

列表 b =

二,字典:儲存方式 -key-value

1,建立

a =

2,為什麼有鍵?

確定樹3,b = 鍵值可以是字串,數字,元組,不能是列表(列表可變)

4,鍵值不可相同 -- 相同會被覆蓋

5,value值的型別-- 沒有限制

6,操作 增刪改查

for key in b.keys():

print(key)

b["tel"] = 138

b["tel"] = 139

del b["tel"]

#del b

print(b["age"])

print(b)

7,字典內建函式

a =

b =

print(len(b))

print(str(b))

b =

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

8,排序

key 型別相同,自然順序

d =

import operator

ds = sorted(d.items(),key = operator.itemgetter(0))

print(ds)

value 3

正常想要獲取dict中的值,首先要知道key通過dict[key]獲取對應的value,在雜湊中為了達到這種操作,

首先會計算key的hash值即雜湊值,把這個值最低的幾位數字當作偏移量,在雜湊值裡查詢表元(

具體取幾位,得看當前雜湊表的大小),若找到表元為空,異常keyerror ,不為空,

表元裡會有一對 found_key:found_value。這時候python會檢驗search_key == found_key是否為真,

如果它們相等,會返回found_value。如果兩個值不匹配,則是三列衝突,

而雜湊本身的索引又只依賴於這個數字的一部分,為了解決雜湊衝突,演算法會在雜湊值中另外再取幾位

,然後用特殊的方法處理一下,把新得到的數字再當作數字來尋找表元。若這次找到的表元是空的,

則同樣丟擲keyerrot,若非空,或者鍵匹配,則返回這個值,或者又發現了雜湊衝突,則重複以上的步驟

'''#6

#b =

'''print(b.keys())

print(b.values())

print(b.items())

for key,value in b.items():

print(key,value)

else:

print("yuiop")

''''''

print(b.get("name"))

b.pop("age")

print(b)

''''''

b.update()

print(b)

''''''

a = b.copy()

print(id(a["a"]))

print(id(b["a"]))

''''''

b.clear()

print(b)

''''''

b.popitem()

print(b)

'''#d =

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

#import operator

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

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

#ds = sorted(f)

#print(ds)

'''#58267

#58267

#25867

def insertsorted(list):

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

temp = list[i]

flag = false

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

if list[j] > temp:

list[j+1] = list[j]

else:

list[j+1] = temp

flag = true

break

if not flag:

list[0] = temp

a = [5,8,2,6,7]

insertsorted(a)

print(a)

''''''

def insertsorted(list):

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

temp = list[i]

leftindex = i - 1

while leftindex >= 0 and list[leftindex] > temp:

list[leftindex + 1] = list[leftindex]

leftindex -= 1

list[leftindex + 1] = temp

a = [5,8,2,6,7]

insertsorted(a)

print(a)

'''

插入排序 折半插入排序

折半插入排序 binary insertion sort 直接插入排序採用順序查詢法查詢當前記錄在已排好序的序列中插入位置,這個 查詢 操作可利用 折半查詢 來實 現,由此進行的插入排序稱之為折半插入排序 binary insertion sort 演算法思想 1 將待排序的記錄存放在陣列r 1.n...

插入排序 折半插入排序

折半插入排序是基於直接插入排序的優化。直接插入排序 將第i個元素插入時,通過折半查詢的方式,來查詢第i個元素合適的位置。當0 i 1 位置上的元素都已經排序ok,現需要插入第i個元素,設其值為temp 令low 0,high i,mid high low 2。那麼temp可能插入的位置是 low h...

插入排序 希爾插入排序

本文借鑑於lsgo實驗室創始人馬老師 演算法 希爾插入排序 delta len nums 2 while delta 0 shell delta,nums delta delta 2return nums defshell delta,key for i in range delta,len key...