python 字典鍵值對練習


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 in cars:
           dict2['i[0]'] = 'i[1]'

>>> dict2

{'i[0]': 'i[1]'}

哈哈,發現了是什么錯誤沒?我給'i[0'和'i[1]'都加了引號,不應該加的。

>>> for i in cars:
            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 in dict2:
             print(i)

BENS
AUDI
BMW

看值:

>>> for i in dict2:
             print(dict2[i])

10
7.9
8.5

對值求和:

>>> sum1 = 0

>>> for i in dict2:
            sum1 += dict2[i]

>>> sum1
26.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 in range(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的好用易用,還是要感謝廣大愛好者在添磚加瓦。

作為一名掙扎着學習的小菜雞,我雖道阻且長,但也一如既往。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM