我們老祖宗早就說出了一個顛簸不破的道理:凡事預(yù)則立,不預(yù)則廢。
所以,學(xué)習(xí)Python前我做的準(zhǔn)備工作就是:
準(zhǔn)備一臺安裝了Anaconda 3開源發(fā)行版本的電腦,Anaconda 3集合3.6版本的Python與可視化編程工具Spyder。
順便推薦下有助于學(xué)習(xí)Python的書籍。
好了,廢話了那么多,現(xiàn)在進(jìn)入正題。鑒于本章分享的是學(xué)習(xí)Python列表元素排序的主知識點(diǎn),那就要在學(xué)習(xí)前提出問題,帶著問題進(jìn)入學(xué)習(xí)狀態(tài)。
1、是否有專門的排序方法?
2、是否也是存在三種排序方式:順序、倒序、亂序?
3、執(zhí)行排序操作后,是否會新建列表對象?
4、純屬的數(shù)字列表,是否存在求最大、最小、和這樣類似運(yùn)算?
帶著上面的問題,我開始進(jìn)入學(xué)習(xí)狀態(tài)。
一、了解到Python提供排序方法,并且可以實(shí)現(xiàn)順序、倒序、亂序三中排序方式。
1、sort()方法
列表對象調(diào)用sort()方法可以實(shí)現(xiàn)列表元素的順序或倒序排序。
自己動手敲出代碼:
a = [7,9,2,89,54,35,76,24,19,99,12]
a.sort() #順序排序
print(a)
a.sort(reverse = True) #倒序排序
print(a)
2、random
列表打亂順序需要引入一個模塊random,在是用該模塊中的shuffle()方法來實(shí)現(xiàn)。
直接敲出代碼吧:
import random
random.shuffle(b)
print(b)
代碼運(yùn)行效果見圖:
排序案例
二、需要驗(yàn)證上面兩種方法是否會在內(nèi)存中新建一個列表對象。如果沒有的話,那Python是否提供了其他方法呢?
還是采用上面案例中已經(jīng)創(chuàng)建的列表對象:
1、先看看操作排序前的列表地址
id(a)
id(b)
2、進(jìn)行排序操作并再次查看列表地址
判斷是否新建列表對象案例
3、sorted():新建列表對象的排序
直接上案例演示圖,說服力更強(qiáng)。
sorted()案例
結(jié)論:sorted()排序后,會在內(nèi)存中創(chuàng)建新的列表對象。
應(yīng)用:游戲程序中用來洗牌的時候可以用到sorted()方法。
三、Python也提供求最大、最小、和的方法,分別himax()、min()、sum()
上案例效果圖:
一、Python提供了一個迭代器的概念,這是在提問篇沒想到的問題,所以我們放到這里來學(xué)習(xí)。
二、對于逆序排序,我們是否可以利用前面學(xué)過的知識呢?譬如列表的切片。
上案例效果圖:
結(jié)論:
職說職語感言:
編程語言的學(xué)習(xí)就是一個多練習(xí)的過程。在不停地敲代碼過程中理解Python精義,在理解的過程中又用敲代碼的方式來解答與驗(yàn)證自己的疑問點(diǎn),逐漸鞏固自己對Python這門語言的理解,直至掌握,無捷徑可走。
聯(lián)系客服