主題

從零開始的python ep.8 容器的函式

黑子 | 2021-04-30 13:00:04 | 巴幣 4 | 人氣 82

容器(tuple list dict set) 除了在ep.6 提到的方法,還有各種函式可以使用,幫助我們快速找到資料中所想要的資料。


max(containers)
得到容器內最大值

min(containers)
得到容器內最小值

sum(containers)
加總容器的數字

len(containers)
容器的長度

這些函式雖然好用,但是僅限處理數字或字串(比大小或加總,字串不能加總),如果容器內有字串 數字或是容器(不同的元素),是沒有辦法比較的,len沒有屬性問題,所以不受影響,不過容器內有容器的話會視作一個元素。
先給大家看程式碼的模板(底下就只是改改內容,讓他print出不一樣的東西)


來看看一些例子
  
上面是 tuple,數字有沒有按照大小排序沒差,但位置是固定的(不要忘了tuple的傲嬌)

上面是list,一樣可以輕鬆找出最大最小跟總和

一樣是list,但是改成字串形式,雖然還是可以比,但是比出來的結果會很怪(因為它是看字串的ID(對應內碼),可以參考下圖),然後字串無法加總,所以跳出typeError
附帶一提,在我們讓使用者輸入數字建立特定的list的時候,會忘記字串的內容是以字串形式儲存,不是數字,因此直接比大小會出問題,這也是黑子到現在也會犯的錯

上面是字典,一樣可以正常運作,但要注意1,2,3,4都是數字,如果改成字串或是放到value的位置

雖然還是可以比較出字母的"大小"(看ID值),但總和就掛了

這樣比的最大最小值也是蠻怪的ww,然後我們可以看出比較都是key值,不是value



最後是set,裡面混雜數字 tuple跟list,如上面說的len還是可以用,但最大最小加總都壞了

字串跟數字同時出現一樣會壞掉

此時我們利用ep.6 最後面提到的轉換式    list(map(int,容器)),可以把容器轉成數字形式的list
所以上下兩個list 一比就能看出差別,也能正常得到元素的數量跟最大最小與加總


送禮物贊助創作者 !
0
留言

創作回應

相關創作

更多創作