成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

Julylovin / 2057人閱讀

摘要:對(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í)如果真正寫(xiě)文章,會(huì)在寫(xiě)完之后把這句話刪掉的。而我則是完全像跟看官聊天一樣,就不刪除了。

繼續(xù)。

對(duì)list的操作 向list中插入一個(gè)元素

前面有一個(gè)向list中追加元素的方法,那個(gè)追加是且只能是將新元素添加在list的最后一個(gè)。如:

>>> all_users = ["qiwsir","github"]
>>> all_users.append("io")
>>> all_users
["qiwsir", "github", "io"]

從這個(gè)操作,就可以說(shuō)明list是可以隨時(shí)改變的。這種改變的含義只它的大小即所容納元素的個(gè)數(shù)以及元素內(nèi)容,可以隨時(shí)直接修改,而不用進(jìn)行轉(zhuǎn)換。這和str有著很大的不同。對(duì)于str,就不能進(jìn)行字符的追加。請(qǐng)看官要注意比較,這也是str和list的重要區(qū)別。

與list.append(x)類似,list.insert(i,x)也是對(duì)list元素的增加。只不過(guò)是可以在任何位置增加一個(gè)元素。

我特別引導(dǎo)列為看官要通過(guò)官方文檔來(lái)理解:

  

list.insert(i, x)

  
    

Insert an item at a given position. The first argument is the index of the element before which to insert, so a.insert(0, x) inserts at the front of the list, and a.insert(len(a), x) is equivalent to a.append(x).

這次就不翻譯了。如果看不懂英語(yǔ),怎么了解貴國(guó)呢?一定要硬著頭皮看英語(yǔ),不僅能夠?qū)W好程序,更能...(此處省略兩千字)

根據(jù)官方文檔的說(shuō)明,我們做下面的實(shí)驗(yàn),請(qǐng)看官?gòu)膶?shí)驗(yàn)中理解:

>>> all_users
["qiwsir", "github", "io"]
>>> all_users.insert("python")      #list.insert(i,x),要求有兩個(gè)參數(shù),少了就報(bào)錯(cuò)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: insert() takes exactly 2 arguments (1 given)

>>> all_users.insert(0,"python")
>>> all_users
["python", "qiwsir", "github", "io"]

>>> all_users.insert(1,"http://")
>>> all_users
["python", "http://", "qiwsir", "github", "io"]

>>> length = len(all_users)
>>> length
5

>>> all_users.insert(length,"algorithm")
>>> all_users
["python", "http://", "qiwsir", "github", "io", "algorithm"]

小結(jié):

list.insert(i,x),將新的元素x 插入到原list中的list[i]前面

如果i==len(list),意思是在后面追加,就等同于list.append(x)

刪除list中的元素

list中的元素,不僅能增加,還能被刪除。刪除list元素的方法有兩個(gè),它們分別是:

  

list.remove(x)

  
    

Remove the first item from the list whose value is x. It is an error if there is no such item.

  

list.pop([i])

  
    

Remove the item at the given position in the list, and return it. If no index is specified, a.pop() removes and returns the last item in the list. (The square brackets around the i in the method signature denote that the parameter is optional, not that you should type square brackets at that position. You will see this notation frequently in the Python Library Reference.)

我這里講授python,有一個(gè)習(xí)慣,就是用學(xué)習(xí)物理的方法。如果看官當(dāng)初物理沒(méi)有學(xué)好,那么一定是沒(méi)有用這種方法,或者你的老師沒(méi)有用這種教學(xué)法。這種方法就是:自己先實(shí)驗(yàn),然后總結(jié)規(guī)律。

先實(shí)驗(yàn)list.remove(x),注意看上面的描述。這是一個(gè)能夠刪除list元素的方法,同時(shí)上面說(shuō)明告訴我們,如果x沒(méi)有在list中,會(huì)報(bào)錯(cuò)。

>>> all_users
["python", "http://", "qiwsir", "github", "io", "algorithm"]
>>> all_users.remove("http://")
>>> all_users       #的確是把"http://"刪除了
["python", "qiwsir", "github", "io", "algorithm"]

>>> all_users.remove("tianchao")        #原list中沒(méi)有“tianchao”,要?jiǎng)h除,就報(bào)錯(cuò)。
Traceback (most recent call last):
  File "", line 1, in 
ValueError: list.remove(x): x not in list

注意兩點(diǎn):

如果正確刪除,不會(huì)有任何反饋。沒(méi)有消息就是好消息。

如果所刪除的內(nèi)容不在list中,就報(bào)錯(cuò)。注意閱讀報(bào)錯(cuò)信息:x not in list

看官是不是想到一個(gè)問(wèn)題?如果能夠在刪除之前,先判斷一下這個(gè)元素是不是在list中,在就刪,不在就不刪,不是更智能嗎?

如果看官想到這里,就是在編程的旅程上一進(jìn)步。python的確讓我們這么做。

>>> all_users
["python", "qiwsir", "github", "io", "algorithm"]
>>> "python" in all_users       #這里用in來(lái)判斷一個(gè)元素是否在list中,在則返回True,否則返回False
True

>>> if "python" in all_users:
...     all_users.remove("python")
...     print all_users
... else:
...     print ""python" is not in all_users"
... 
["qiwsir", "github", "io", "algorithm"]     #刪除了"python"元素

>>> if "python" in all_users:
...     all_users.remove("python")
...     print all_users
... else:
...     print ""python" is not in all_users"
... 
"python" is not in all_users        #因?yàn)橐呀?jīng)刪除了,所以就沒(méi)有了。

上述代碼,就是兩段小程序,我是在交互模式中運(yùn)行的,相當(dāng)于小實(shí)驗(yàn)。

另外一個(gè)刪除list.pop([i])會(huì)怎么樣呢?看看文檔,做做實(shí)驗(yàn)。

>>> all_users
["qiwsir", "github", "io", "algorithm"]
>>> all_users.pop()     #list.pop([i]),圓括號(hào)里面是[i],表示這個(gè)序號(hào)是可選的
"algorithm"             #如果不寫(xiě),就如同這個(gè)操作,默認(rèn)刪除最后一個(gè),并且將該結(jié)果返回

>>> all_users
["qiwsir", "github", "io"]

>>> all_users.pop(1)        #指定刪除編號(hào)為1的元素"github"
"github"

>>> all_users
["qiwsir", "io"]
>>> all_users.pop()
"io"

>>> all_users           #只有一個(gè)元素了,該元素編號(hào)是0
["qiwsir"]
>>> all_users.pop(1)    #但是非要?jiǎng)h除編號(hào)為1的元素,結(jié)果報(bào)錯(cuò)。注意看報(bào)錯(cuò)信息
Traceback (most recent call last):
  File "", line 1, in 
IndexError: pop index out of range      #刪除索引超出范圍,就是1不在list的編號(hào)范圍之內(nèi)

給看官留下一個(gè)思考題,如果要向前面那樣,能不能事先判斷一下要?jiǎng)h除的編號(hào)是不是在list的長(zhǎng)度范圍(用len(list)獲取長(zhǎng)度)以內(nèi)?然后進(jìn)行刪除或者不刪除操作。

list是一個(gè)有意思的東西,內(nèi)涵豐富??磥?lái)下一講還要繼續(xù)講list。并且可能會(huì)做一個(gè)有意思的游戲。請(qǐng)期待。

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

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

相關(guān)文章

  • [基礎(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(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(4)

    摘要:要研究清楚一些函數(shù)特別是內(nèi)置函數(shù)的功能,建議看官首先要明白內(nèi)置函數(shù)名稱的含義。前面提到的內(nèi)置函數(shù)得到的結(jié)果,就是一個(gè)排好序的。至此,有關(guān)的基本操作的內(nèi)置函數(shù),就差不多了。 list的話題的確不少,而且,在編程中,用途也非常多。 有看官可能要問(wèn)了,如果要生成一個(gè)list,除了要把元素一個(gè)一個(gè)寫(xiě)上之外,有沒(méi)有能夠讓計(jì)算機(jī)自己按照某個(gè)規(guī)律生成list的方法呢? 如果你提出了這個(gè)問(wèn)題,充分...

    YanceyOfficial 評(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快,而且也容易寫(xiě)(是否容易,可能因人而...

    李世贊 評(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元查看
<