students = [('john', 'A', 15), ('jane', 'B', 12), ('dave','B', 10)]
創新互聯公司于2013年創立,是專業互聯網技術服務公司,擁有項目成都網站設計、成都做網站網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元濟水街道做網站,已為上家服務,為濟水街道各地企業和個人服務,聯系電話:028-86922220
print(sorted(students,key=lambda s: s[0]))
key指定一個接收一個參數的函數,這個函數用于從每個元素中提取一個用于比較的關鍵字。默認值為None
例子
為啥會這樣呢?默認不是應該按升序排列。
仔細看 我們lambda返回的是一個元祖,(布爾,布爾,絕對值)
由于key函數主要作用是根據我們自己的要求,取出指定的元素來進行排序,不過我們現在返回的是一個元祖,所以我們首先按布爾進行排序,當有相同的我們在往后面一個元素找,然后進行排序,所以就變成這樣了。
一、主體不同
1、類:是面向對象程序設計實現信息封裝的基礎。
2、函數:是指一段在一起的、可以做某一件事兒的程序。也叫做子程序、(OOP中)方法。
二、特點不同
1、類:是一種用戶定義的引用數據類型,也稱類類型。每個類包含數據說明和一組操作數據或傳遞消息的函數。類的實例稱為對象。
2、函數:分為全局函數、全局靜態函數;在類中還可以定義構造函數、析構函數、拷貝構造函數、成員函數、友元函數、運算符重載函數、內聯函數等。
三、規則不同
1、類:實質是一種引用數據類型,類似于byte、short、int(char)、long、float、double等基本數據類型,不同的是它是一種復雜的數據類型。
2、函數:函數必須聲明后才可以被調用。調用格式為:函數名(實參)調用時函數名后的小括號中的實參必須和聲明函數時的函數括號中的形參個數相同。
參考資料來源:百度百科-函數
參考資料來源:百度百科-類
對的 python3.1和python2.x有一些區別的
最主要的,就是你發現的
print()函數
input()函數,相當于python2.x里的raw_input()
此外還有 range()函數相當于python2.x里的xrange()
其實并沒有太多區別的
不過如果你剛接觸還是建議直接看python3的教程
python中函數和方法的區別:
首先,從分類的角度來分析。
(1)函數的分類:
內置函數:python內嵌的一些函數。
匿名函數:一行代碼實現一個函數功能。
遞歸函數
自定義函數:根據自己的需求,來進行定義函數。
(2)方法的分類:
普通方法:直接用self調用的方法。
私有方法:__函數名,只能在類中被調用的方法。
屬性方法:@property,將方法偽裝成為屬性,讓代碼看起來更合理。
特殊方法(雙下劃線方法):以__init__為例,是用來封裝實例化對象的屬性,只要是實例化對象就一定會執行__init方法,如果對象子類中沒有則會尋找父類(超類),如果父類(超類)也沒有,則直接繼承object(python 3.x)類,執行類中的__init__方法。
類方法:通過類名的調用去操作公共模板中的屬性和方法。
靜態方法:不用傳入類空間、對象的方法, 作用是保證代碼的一致性,規范性,可以完全獨立類外的一個方法,但是為了代碼的一致性統一的放到某個模塊(py文件)中。
其次,從作用域的角度來分析:
(1)函數作用域:從函數調用開始至函數執行完成,返回給調用者后,在執行過程中開辟的空間會自動釋放,也就是說函數執行完成后,函數體內部通過賦值等方式修改變量的值不會保留,會隨著返回給調用者后,開辟的空間會自動釋放。
(2)方法作用域:通過實例化的對象進行方法的調用,調用后開辟的空間不會釋放,也就是說調用方法中對變量的修改值會一直保留。
最后,調用的方式不同。
(1)函數:通過“函數名()”的方式進行調用。
(2)方法:通過“對象.方法名”的方式進行調用。
class Foo(object): ? ?def func(self): ? ? ? ?pass#實例化obj = Foo()# 執行方式一:調用的func是方法obj.func() #func 方法# 執行方式二:調用的func是函數Foo.func(123) # 函數
文章名稱:python比較不同函數,python 類比較
網頁鏈接:http://vcdvsql.cn/article6/heooog.html
成都網站建設公司_創新互聯,為您提供、定制網站、網站排名、搜索引擎優化、做網站、網站策劃
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯