亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

[零基礎(chǔ)學(xué)Python]有容乃大的list(4)

YanceyOfficial / 1871人閱讀

摘要:要研究清楚一些函數(shù)特別是內(nèi)置函數(shù)的功能,建議看官首先要明白內(nèi)置函數(shù)名稱的含義。前面提到的內(nèi)置函數(shù)得到的結(jié)果,就是一個(gè)排好序的。至此,有關(guān)的基本操作的內(nèi)置函數(shù),就差不多了。

list的話題的確不少,而且,在編程中,用途也非常多。

有看官可能要問(wèn)了,如果要生成一個(gè)list,除了要把元素一個(gè)一個(gè)寫上之外,有沒(méi)有能夠讓計(jì)算機(jī)自己按照某個(gè)規(guī)律生成list的方法呢?

如果你提出了這個(gè)問(wèn)題,充分說(shuō)明你是一個(gè)“懶人”,不過(guò)這不是什么壞事情,這個(gè)世界就是因?yàn)椤皯腥恕钡拇嬖诙M(jìn)步?!皯腥恕逼鋵?shí)不懶。

對(duì)list的操作 range(start,stop)生成數(shù)字list

range(start, stop[, step])是一個(gè)內(nèi)置函數(shù)。

要研究清楚一些函數(shù)特別是內(nèi)置函數(shù)的功能,建議看官首先要明白內(nèi)置函數(shù)名稱的含義。因?yàn)樵趐ython中,名稱不是隨便取的,是代表一定意義的。關(guān)于取名字問(wèn)題,可以看參考本系列的:永遠(yuǎn)強(qiáng)大的函數(shù)中的《取名字的學(xué)問(wèn)》部分內(nèi)容。

  

range

  

n. 范圍;幅度;排;山脈
vi. (在...內(nèi))變動(dòng);平行,列為一行;延伸;漫游;射程達(dá)到
vt. 漫游;放牧;使并列;歸類于;來(lái)回走動(dòng)

在具體實(shí)驗(yàn)之前,還是按照管理,摘抄一段官方文檔的原話,讓我們能夠深刻理解之:

  

This is a versatile function to create lists containing arithmetic progressions. It is most often used in for loops. The arguments must be plain integers. If the step argument is omitted, it defaults to 1. If the start argument is omitted, it defaults to 0. The full form returns a list of plain integers [start, start + step, start + 2 * step, ...]. If step is positive, the last element is the largest start + i * step less than stop; if step is negative, the last element is the smallest start + i * step greater than stop. step must not be zero (or else ValueError is raised).

從這段話,我們可以得出關(guān)于range()函數(shù)的以下幾點(diǎn):

這個(gè)函數(shù)可以創(chuàng)建一個(gè)數(shù)字元素組成的列表。

這個(gè)函數(shù)最常用于for循環(huán)(關(guān)于for循環(huán),馬上就要涉及到了)

函數(shù)的參數(shù)必須是整數(shù),默認(rèn)從0開(kāi)始。返回值是類似[start, start + step, start + 2*step, ...]的列表。

step默認(rèn)值是1。如果不寫,就是按照此值。

如果step是正數(shù),返回list的最最后的值不包含stop值,即start+istep這個(gè)值小于stop;如果step是負(fù)數(shù),start+istep的值大于stop。

step不能等于零,如果等于零,就報(bào)錯(cuò)。

在實(shí)驗(yàn)開(kāi)始之前,再解釋range(start,stop[,step])的含義:

start:開(kāi)始數(shù)值,默認(rèn)為0,也就是如果不寫這項(xiàng),就是認(rèn)為start=0

stop:結(jié)束的數(shù)值,必須要寫的。

step:變化的步長(zhǎng),默認(rèn)是1,也就是不寫,就是認(rèn)為步長(zhǎng)為1。堅(jiān)決不能為0

實(shí)驗(yàn)開(kāi)始,請(qǐng)以各項(xiàng)對(duì)照前面的講述:

>>> range(9)                #stop=9,別的都沒(méi)有寫,含義就是range(0,9,1)
[0, 1, 2, 3, 4, 5, 6, 7, 8] #從0開(kāi)始,步長(zhǎng)為1,增加,直到小于9的那個(gè)數(shù) 
>>> range(0,9)
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> range(0,9,1)
[0, 1, 2, 3, 4, 5, 6, 7, 8]

>>> range(1,9)              #start=1
[1, 2, 3, 4, 5, 6, 7, 8]

>>> range(0,9,2)            #step=2,每個(gè)元素等于start+i*step,
[0, 2, 4, 6, 8]

僅僅解釋一下range(0,9,2)

如果是從0開(kāi)始,步長(zhǎng)為1,可以寫成range(9)的樣子,但是,如果步長(zhǎng)為2,寫成range(9,2)的樣子,計(jì)算機(jī)就有點(diǎn)糊涂了,它會(huì)認(rèn)為start=9,stop=2。所以,在步長(zhǎng)不為1的時(shí)候,切忌,要把start的值也寫上。

start=0,step=2,stop=9.list中的第一個(gè)值是start=0,第二個(gè)值是start+1step=2(注意,這里是1,不是2,不要忘記,前面已經(jīng)講過(guò),不論是list還是str,對(duì)元素進(jìn)行編號(hào)的時(shí)候,都是從0開(kāi)始的),第n個(gè)值就是start+(n-1)step。直到小于stop前的那個(gè)值。

熟悉了上面的計(jì)算過(guò)程,看看下面的輸入誰(shuí)是什么結(jié)果?

>>> range(-9)

我本來(lái)期望給我返回[0,-1,-2,-3,-4,-5,-6,-7,-8],我的期望能實(shí)現(xiàn)嗎?

分析一下,這里start=0,step=1,stop=-9.

第一個(gè)值是0;第二個(gè)是start+1*step,將上面的數(shù)代入,應(yīng)該是1,但是最后一個(gè)還是-9,顯然出現(xiàn)問(wèn)題了。但是,python在這里不報(bào)錯(cuò),它返回的結(jié)果是:

>>> range(-9)
[]
>>> range(0,-9)
[]
>>> range(0)
[]

報(bào)錯(cuò)和返回結(jié)果,是兩個(gè)含義,雖然返回的不是我們要的。應(yīng)該如何修改呢?

>>> range(0,-9,-1)
[0, -1, -2, -3, -4, -5, -6, -7, -8]
>>> range(0,-9,-2)
[0, -2, -4, -6, -8]

有了這個(gè)內(nèi)置函數(shù),很多事情就簡(jiǎn)單了。比如:

>>> range(0,100,2)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98]

100以內(nèi)的自然數(shù)中的偶數(shù)組成的list,就非常簡(jiǎn)單地搞定了。

思考一個(gè)問(wèn)題,現(xiàn)在有一個(gè)列表,比如是["I","am","a","pythoner","I","am","learning","it","with","qiwsir"],要得到這個(gè)list的所有序號(hào)組成的list,但是不能一個(gè)一個(gè)用手指頭來(lái)數(shù)。怎么辦?

請(qǐng)沉思兩分鐘之后,自己實(shí)驗(yàn)一下,然后看下面。

>>> pythoner
["I", "am", "a", "pythoner", "I", "am", "learning", "it", "with", "qiwsir"]
>>> py_index = range(len(pythoner))     #以len(pythoner)為stop的值
>>> py_index
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

再用手指頭指著pythoner里面的元素,數(shù)一數(shù),是不是跟結(jié)果一樣。

排排坐,分果果

排序,不管在現(xiàn)實(shí)還是在網(wǎng)絡(luò)上都是隨處可見(jiàn)的。梁山好漢要從第一個(gè)排序到第108個(gè),這是一個(gè)不很容易搞定的活。

前面提到的內(nèi)置函數(shù)range()得到的結(jié)果,就是一個(gè)排好序的。對(duì)于一個(gè)沒(méi)有排好序的list,怎么排序呢?

有兩個(gè)方法可以實(shí)現(xiàn)對(duì)list的排序:

list.sort(cmp=None, key=None, reverse=False)

sorted(iterable[, cmp[, key[, reverse]]])

通過(guò)下面的實(shí)驗(yàn),可以理解如何排序的方法

>>> number = [1,4,6,2,9,7,3]
>>> number.sort()
>>> number
[1, 2, 3, 4, 6, 7, 9]

>>> number = [1,4,6,2,9,7,3]
>>> number
[1, 4, 6, 2, 9, 7, 3]
>>> sorted(number)
[1, 2, 3, 4, 6, 7, 9]

>>> number = [1,4,6,2,9,7,3]
>>> number
[1, 4, 6, 2, 9, 7, 3]
>>> number.sort(reverse=True)   #開(kāi)始實(shí)現(xiàn)倒序
>>> number
[9, 7, 6, 4, 3, 2, 1]

>>> number = [1,4,6,2,9,7,3]
>>> number
[1, 4, 6, 2, 9, 7, 3]
>>> sorted(number,reverse=True)
[9, 7, 6, 4, 3, 2, 1]

其實(shí),在高級(jí)語(yǔ)言中,排序是一個(gè)比較熱門對(duì)的話題,如果有興趣的讀者,可以到我寫的有關(guān)算法中查看有關(guān)排序的話題。

至此,有關(guān)list的基本操作的內(nèi)置函數(shù),就差不多了。不過(guò)最后,還要告訴看官們一個(gè)學(xué)習(xí)方法。因?yàn)閜ython的內(nèi)置函數(shù)往往不少,有時(shí)候光憑教程,很難學(xué)到全部,那么,最關(guān)鍵地是要自己會(huì)查找都有哪些函數(shù)可以用。怎么查找呢?

一個(gè)非常重要的方法

假設(shè)有一個(gè)list,如何知道它所擁有的內(nèi)置函數(shù)呢?請(qǐng)用help(),幫助我吧。

>>> help(list)

就能夠看到所有的關(guān)于list的函數(shù),以及該函數(shù)的使用方法。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/37333.html

相關(guān)文章

  • [基礎(chǔ)學(xué)python]有容乃大list(1)

    摘要:定義在中,用方括號(hào)表示一個(gè),在方括號(hào)里面,可以是,也可以是類型的數(shù)據(jù),甚至也能夠是這種布爾值。前面在對(duì)進(jìn)行操作的時(shí)候,有一些內(nèi)置函數(shù),比如,這是去掉左右空格的內(nèi)置函數(shù),也是的方法。 前面的學(xué)習(xí)中,我們已經(jīng)知道了兩種python的數(shù)據(jù)類型:int和str。再?gòu)?qiáng)調(diào)一下對(duì)數(shù)據(jù)類型的理解,這個(gè)世界是由數(shù)據(jù)組成的,數(shù)據(jù)可能是數(shù)字(注意,別搞混了,數(shù)字和數(shù)據(jù)是有區(qū)別的),也可能是文字、或者是聲音、...

    lewif 評(píng)論0 收藏0
  • [基礎(chǔ)學(xué)python]有容乃大list(2)

    摘要:對(duì)的操作合并有容乃大的中,對(duì)的操作提到了,也就是將某個(gè)元素追加到已知的一個(gè)后邊。如果的對(duì)象是數(shù)值型,則報(bào)錯(cuò)。依然是上一條官方解釋是不是說(shuō)的非常清楚明白了先到這里,下講還繼續(xù)有容乃大的 對(duì)list的操作 合并list 《有容乃大的list(1)》中,對(duì)list的操作提到了list.append(x),也就是將某個(gè)元素x 追加到已知的一個(gè)list后邊。 除了將元素追加到list中,還...

    阿羅 評(píng)論0 收藏0
  • [基礎(chǔ)學(xué)python]有容乃大list(3)

    摘要:對(duì)于,就不能進(jìn)行字符的追加。與類似,也是對(duì)元素的增加。注意兩點(diǎn)如果正確刪除,不會(huì)有任何反饋。沒(méi)有消息就是好消息。是一個(gè)有意思的東西,內(nèi)涵豐富。并且可能會(huì)做一個(gè)有意思的游戲。 現(xiàn)在是講lis的第三章了。俗話說(shuō),事不過(guò)三,不知道在開(kāi)頭,我也不知道這一講是不是能夠把基礎(chǔ)的list知識(shí)講完呢。哈哈。其實(shí)如果真正寫文章,會(huì)在寫完之后把這句話刪掉的。而我則是完全像跟看官聊天一樣,就不刪除了。 繼...

    Julylovin 評(píng)論0 收藏0
  • [基礎(chǔ)學(xué)python]關(guān)于循環(huán)小伎倆

    摘要:不管是還是,所發(fā)起的循環(huán),在編程中是經(jīng)常被用到的。這里重點(diǎn)是復(fù)習(xí)并展示一下它的循環(huán)中,做為計(jì)數(shù)器的使用。通過(guò)上述實(shí)例,主要是讓看官理解在循環(huán)中計(jì)數(shù)器的作用。是用于并行遍歷的函數(shù)。一種方法是通過(guò)循環(huán),分別從兩個(gè)中取出元素,然后求和。 不管是while還是for,所發(fā)起的循環(huán),在python編程中是經(jīng)常被用到的。特別是for,一般認(rèn)為,它要比while快,而且也容易寫(是否容易,可能因人而...

    李世贊 評(píng)論0 收藏0
  • [基礎(chǔ)學(xué)Python]再深點(diǎn),更懂list

    摘要:有的前面有空格,有的后面有空格去掉元素前后的空格這是一個(gè)有意思的內(nèi)置函數(shù),本來(lái)我們可以通過(guò)的方式得到一個(gè)的每個(gè)元素編號(hào),然后在用的方式得到該元素。 對(duì)于list,由于她的確非常非常龐雜,在python中應(yīng)用非常廣泛,所以,雖然已經(jīng)介紹完畢了基礎(chǔ)內(nèi)容,這里還要用一講深入一點(diǎn)點(diǎn),往往越深入越... list解析 先看下面的例子,這個(gè)例子是想得到1到9的每個(gè)整數(shù)的平方,并且將結(jié)果放在li...

    mdluo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<