容器(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 一比就能看出差別,也能正常得到元素的數量跟最大最小與加總