O(∩_∩)O哈哈~時間過得飛快,上次學python還是19年十一,這次更博已經20年的五一了。
間歇性躊躇滿志,持續性混吃等死。
我還是那隻笨笨的鳥,但是也一直蜷縮在窩裡不敢飛的那種。
今天有在家練習學習python字典的一些例子。真的是:腦子覺得自己會了,但是手很誠實,敲半天,然後對腦子說,哦,你還沒會呢!
今天練習的是清單轉換成字典:
>>> cars = [['BMW', 8.5], ['BENS', 8.3], ['AUDI', 7.9]]>>> dict1 =dict(cars)>>>dict1
{'BENS': 8.3, 'AUDI': 7.9, 'BMW': 8.5}
以上是運用系統自帶的巧妙方法直接轉換了,那如何自己寫函數把清單和字典的鍵、值對應起來呢?
我開始想的是,直接寫個for循環,将鍵和值分别按規律排放好,結果手就跟腳一樣,敲了以下的代碼:
>>> dict2 ={}>>> for i incars:
dict2['i[0]'] = 'i[1]'
>>>dict2
{'i[0]': 'i[1]'}
哈哈,發現了是什麼錯誤沒?我給'i[0'和'i[1]'都加了引号,不應該加的。
>>> for i incars:
dict2[i[0]]= i[1]>>>dict2
{'BENS': 8.3, 'AUDI': 7.9, 'i[0]': 'i[1]', 'BMW': 8.5}
哦!注意把剛才筆誤導緻的 'i[0]': 'i[1]'删掉。
>>> del dict2['i[0]']>>>dict2
{'BENS': 8.3, 'AUDI': 7.9, 'BMW': 8.5}
這樣dict2就相當于把dict1 = dict(cars)的功能實作了。
那我想修改某個鍵的值怎麼做?哈哈哈,也是很簡單,直接寫想被修改的值覆寫掉之前的值即可。舉例如下:
>>> dict2['BENS'] = 10
>>>dict2
{'BENS': 10, 'AUDI': 7.9, 'BMW': 8.5}
我想看看鍵和值都是多少,還想把值進行求和,又該怎麼做呢?
看鍵:
>>> for i indict2:print(i)
BENS
AUDI
BMW
看值:
>>> for i indict2:print(dict2[i])10
7.9
8.5
對值求和:
>>> sum1 =0>>> for i indict2:
sum1+=dict2[i]>>>sum126.4
或者直接用dict2.values()和dict2.keys()查詢:
>>>dict2.values()
dict_values([10, 7.9, 8.5])>>>dict2.keys()
dict_keys(['BENS', 'AUDI', 'BMW'])
如果我把鍵放到list1中,把值放到list2中,我又該怎麼把他倆合到一個字典裡去呢?
>>> list1 =list(dict2)>>>list1
['BENS', 'AUDI', 'BMW']>>> list2 =list(dict2.values())>>>list2
[10, 7.9, 8.5]
合的方法:
>>> for i inrange(0,len(list1)):
dict3[list1[i]]=list2[i]>>>dict3
{'BENS': 10, 'AUDI': 7.9, 'BMW': 8.5}
哈哈哈,其實還有一個更快捷的方法,python有一個zip函數,可以将其比對對應上。具體實作:
>>> zip1 =zip(list1,list2)>>> dict5 =dict(zip1)>>>dict5
{'BENS': 10, 'AUDI': 7.9, 'BMW': 8.5}
也是很友善的。
是以python的好用易用,還是要感謝廣大愛好者在添磚加瓦。
作為一名掙紮着學習的小菜雞,我雖道阻且長,但也一如既往。