在上節我們學習了字典的方法,本章節來了解一下混合字典及字典的遍歷和字典推導式。
所謂混合字典,即字典中儲存的資料是各種類型混合在一起的,鍵需要取不可變的資料類型,但是值是可以取任意類型的物件。
我們先來看一個混合字典:
my_dcit={'小明':['身高:170cm','體重:65kg'],'小李':'愛學習,愛運動','小華':('居住地:蘇州','出生地:上海')}
這個字典的值由列表,字串和元組構成,我們可以透過上一節的方法來存取這個混合字典。看下面一段程式碼
my_dcit={'小明':['身高:170cm','體重:65kg'],'小李':'愛學習,愛運動','小華':('居住地:蘇州','出生地:上海')}print('訪問key='小明'->',my_dcit['小明']) print('訪問key='小華'->',my_dcit['小李'])print('訪問key='小華'->',my_dcit['小華'])print('itmes()方法:',my_dcit.items())#整體存取pr int('keys()方法:',my_dcit.keys())#只存取了所有keyprint('values()方法:',my_dcit.values())#只存取了valueprint('get()方法:' ,my_dcit .get('小明'))#get方法來存取指定鍵my_dcit.pop('小明')#此步驟為pop()方法,會刪除鍵='小明'的成對元素print('pop()方法後的my_dict:',my_dcit)#查看一下刪除後的字典
看一下輸出結果:
訪問key='小明'->['身高:170cm','體重:65kg']訪問key='小華'->愛學習,愛運動訪問key='小華'->('居住地:蘇州','出生地:上海')itmes()方法:d ict_items([('小明',['身高:170cm','體重:65kg']),('小李','愛學習,愛運動'),('小華',('居住地:蘇州','出生地:上海'))])keys()方法:d ict_keys(['小明','小李','小華'])values()方法:dict_values([['身高:170cm','體重:65kg'],'愛學習,愛運動',('居住地:蘇州','出生地:上海')])get()方法:['身高:170cm','體重:65kg']pop()方法後的my_dict:{'小李':'愛學習,愛運動','小華':('居住地:蘇州','出生地:上海')}
我們在使用字典的經常要進行字典的遍歷,通常會使用for迴圈去遍歷字典所有的鍵。
我們來看看一般情況下的遍歷訪問:
>>>my_dict={1001:'小明',1002:'小華',1003:'小張'}>>>foriinmy_dict:print(i,my_dict[i])#輸出key及key對應的值1001小明1002小華1003小張
我們在取得物件的時候也會使用items()方法來取得成對的元素。
>>>my_dict={1001:'小明',1002:'小華',1003:'小張'}>>>foriinmy_dict.items():print(i)(1001,'小明')(1002,'小華')(1003,'小張')
這種方式的存取是對面字典的一對數據,輸出結果是以元組的形式輸出,同時還可以透過循環的遍歷直接取得每一次遍歷的鍵和值。
>>>my_dict={1001:'小明',1002:'小華',1003:'小張'}>>>fori,jinmy_dict.items():print('對應鍵:',i,'對應值:',j)對應鍵:1001對應值:小明對應鍵:1002對應值:小華對應鍵:1003對應值:小張
關於字典的遍歷最後透過習題練習一下。
前面學習過列表推導式,元組推導式和列表推導式類似沒有過多的介紹,因為字典相對來說比較特殊,在這裡講解一下字典推導式。
我們先來看一個簡單的使用方式。
>>>my_dict={i:'dotcpp'foriinrange(1,5)}>>>my_dict{1:'dotcpp',2:'dotcpp',3:'dotcpp',4:'dotcpp'}
這裡我們來看字典推導式的結構,第一部分等同於每一個i的值物件都用'dotcpp'來賦值,我們也可以先定義一個列表,把列表中的值賦予它。
>>>my_list=[10,20,30,40,50]>>>my_dict={i:my_list[i]foriinrange(1,5)}>>>my_dict{1:20,2:30,3: 40,4:50}
看下圖:
在使用字典推導式的時候主要鍵與值的相符問題,在後面我們學習過函數之後可以使用zip()函數能夠更方便的進行字典的組合,在這裡就不做過多的介紹。
要求使用者輸入總資產,例如: 3000,然後顯示購物車列表,計算購物車商品總金額,如果商品總額大於總資產,提示帳戶餘額不足,否則,購買成功。購物車清單如下:carts=[{name:床,price:1999,”num”:1},{name:枕頭,price:10, ” num”:2},{name:被子,price:20, ” num”:1}]。
題解在最後。
學習Python的時候字典屬於一個相對來說比較常用的資料結構,但是由於它的獨特性,在競賽題目中關於字典的可能相對較少,在Python課程學習考察中會比較多,在資料儲存的時候我們藉助字典能幫我們準確的找到相應的數據,熟練的掌握列表和字典能夠幫助我們更好的學習Python。
carts=[{name:床,price:1999,”num”:1},{name:枕頭,price:10,”num”:2},{name:被子,price:20,”num”:1} ]。 m=int(input())sum=0foriinrange(len(carts)):sum=carts[i]['price']*carts[i]['num']+sumifm>=sum:print('購買成功')else:print('帳戶餘額不足')