實操作業三

weixin_43306936發表於2020-09-23

練習1:畫出程式碼 a = [100,200,300]的記憶體儲存示意圖。

在這裡插入圖片描述

練習2:使用 range 生成序列:30,40,50,60,70,80

程式碼如下:

#使用 range 生成序列:30,40,50,60,70,80

a=list(range(30,90,10))
print(a)

在這裡插入圖片描述

練習3:推導式生成列表: a = [x*2 for x in range(100) if x%9==0],手寫出結果

a=[0,18,36,54,72,90,108,126,144,162,180,198]

練習4:使用二維列表儲存表格資訊,並畫出簡單的記憶體儲存示意圖:

在這裡插入圖片描述
在這裡插入圖片描述

練習5:元組和列表有哪些共同點?有哪些不同點?

1.元組和列表的共同點:都是序列,都可進行切片,迭代
2.元組和列表的不同點:元組是不可變序列。元組的訪問和處理速度比列表快。元組可以作為字典的鍵,列表則永遠不能作為字典的鍵使用。

練習6:建立一個字典物件,包含如下資訊: 支出金額:300.15,支出日期:2018.10.18,支出人:高小七

a = {"支出金額":"300.15","支出日期":"2018.10.18","支出人":"高小七"}

練習7:使用字典儲存行資料,最後將整個表使用列表儲存起來。

在這裡插入圖片描述

r1 = {"name":"高小一","age":18,"salary":30000,"city":"北京"} 
r2 = {"name":"高小二","age":19,"salary":20000,"city":"上海"} 
r3 = {"name":"高小五","age":20,"salary":10000,"city":"深圳"} 

tb = [r1,r2,r3]

練習8:用文字和自己畫的示意圖描述:字典儲存一個鍵值對的底層過程。

將一個鍵值對放進字典的底層過程

假設字典 a 物件建立完後,陣列長度為 8:

#將一個鍵值對放進字典的底層過程

a={}
a["name"]="huang"
print(bin(hash("name")))
>>> 
-0b101011100101111010111001110100011011001001001001011100001
>>> 

1.當將"name"=“huang"這個鍵值對放到字典物件a中,首先第一步要計算鍵"name"的雜湊表.Python可以使用hash()來計算。
2.由於陣列長度為8,我們可以拿計算出的雜湊值,最右邊3位數作為偏移量,即"001”,十進位制是數字1,我們檢視偏移量1,對應的bucket是否為空,如果為空,則將鍵值放進去,如果不為空,依次取右邊3位作為偏移量’100’,十進位制是數字4,再檢視偏移量4的bucket是否為空.直到棧為空的bucket將鍵值放進去

在這裡插入圖片描述

練習9:集合和字典有什麼關係?

實際上,集合底層是字典實現,集合的所有元素都是字典 中的“鍵物件”,因此是不能重複的且唯一的。

相關文章