国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[零基礎(chǔ)學(xué)python]list和str比較

codergarden / 1288人閱讀

摘要:和兩種類型數(shù)據(jù),有不少相似的地方,也有很大的區(qū)別。偏移量從開始,總元素數(shù)減結(jié)束。和轉(zhuǎn)化這個內(nèi)置函數(shù)實(shí)現(xiàn)的是將轉(zhuǎn)化為。在看例子之前,請看官在交互模式下做如下操作得到了對這個內(nèi)置函數(shù)的完整說明。

list和str兩種類型數(shù)據(jù),有不少相似的地方,也有很大的區(qū)別。本講對她們做個簡要比較,同時也是對前面有關(guān)兩者的知識復(fù)習(xí)一下,所謂“溫故而知新”。

相同點(diǎn) 都屬于序列類型的數(shù)據(jù)

所謂序列類型的數(shù)據(jù),就是說它的每一個元素都可以通過指定一個編號,行話叫做“偏移量”的方式得到,而要想一次得到多個元素,可以使用切片。偏移量從0開始,總元素數(shù)減1結(jié)束。

例如:

>>> welcome_str = "Welcome you"
>>> welcome_str[0]
"W"
>>> welcome_str[1]
"e"
>>> welcome_str[len(welcome_str)-1]
"u"
>>> welcome_str[:4]
"Welc"
>>> a = "python"
>>> a*3
"pythonpythonpython"

>>> git_list = ["qiwsir","github","io"]
>>> git_list[0]
"qiwsir"
>>> git_list[len(git_list)-1]
"io"
>>> git_list[0:2]
["qiwsir", "github"]
>>> b = ["qiwsir"]
>>> b*7
["qiwsir", "qiwsir", "qiwsir", "qiwsir", "qiwsir", "qiwsir", "qiwsir"]

對于此類數(shù)據(jù),下面一些操作是類似的:

>>> first = "hello,world"
>>> welcome_str
"Welcome you"
>>> first+","+welcome_str   #用+號連接str
"hello,world,Welcome you"
>>> welcome_str             #原來的str沒有受到影響,即上面的+號連接后從新生成了一個字符串
"Welcome you"
>>> first
"hello,world"

>>> language = ["python"]
>>> git_list
["qiwsir", "github", "io"]
>>> language + git_list     #用+號連接list,得到一個新的list
["python", "qiwsir", "github", "io"]
>>> git_list
["qiwsir", "github", "io"]
>>> language
["python"]

>>> len(welcome_str)    #得到字符數(shù)
11
>>> len(git_list)       #得到元素數(shù)
3
區(qū)別

list和str的最大區(qū)別是:list是原處可以改變的,str則原處不可變。這個怎么理解呢?

首先看對list的這些操作,其特點(diǎn)是在原處將list進(jìn)行了修改:

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

>>> git_list.append("python")
>>> git_list
["qiwsir", "github", "io", "python"]

>>> git_list[1]               
"github"
>>> git_list[1] = "github.com"
>>> git_list
["qiwsir", "github.com", "io", "python"]

>>> git_list.insert(1,"algorithm")
>>> git_list
["qiwsir", "algorithm", "github.com", "io", "python"]

>>> git_list.pop()
"python"

>>> del git_list[1]
>>> git_list
["qiwsir", "github.com", "io"]

以上這些操作,如果用在str上,都會報錯,比如:

>>> welcome_str
"Welcome you"

>>> welcome_str[1] = "E"
Traceback (most recent call last):
File "", line 1, in 
TypeError: "str" object does not support item assignment

>>> del welcome_str[1]
Traceback (most recent call last):
File "", line 1, in 
TypeError: "str" object doesn"t support item deletion

>>> welcome_str.append("E")
Traceback (most recent call last):
File "", line 1, in 
AttributeError: "str" object has no attribute "append"

如果要修改一個str,不得不這樣。

>>> welcome_str
"Welcome you"
>>> welcome_str[0] + "E" + welcome_str[2:]  #從新生成一個str
"WElcome you"
>>> welcome_str                         #對原來的沒有任何影響
"Welcome you"

其實(shí),在這種做法中,相當(dāng)于從新生成了一個str。

多維list

這個也應(yīng)該算是兩者的區(qū)別了,雖然有點(diǎn)牽強(qiáng)。在str中,里面的每個元素只能是字符,在list中,元素可以是任何類型的數(shù)據(jù)。前面見的多是數(shù)字或者字符,其實(shí)還可以這樣:

>>> matrix = [[1,2,3],[4,5,6],[7,8,9]]
>>> matrix = [[1,2,3],[4,5,6],[7,8,9]]
>>> matrix[0][1]
2
>>> mult = [[1,2,3],["a","b","c"],"d","e"]
>>> mult
[[1, 2, 3], ["a", "b", "c"], "d", "e"]
>>> mult[1][1]
"b"
>>> mult[2]
"d"

以上顯示了多維list以及訪問方式。在多維的情況下,里面的list也跟一個前面元素一樣對待。

list和str轉(zhuǎn)化 str.split()

這個內(nèi)置函數(shù)實(shí)現(xiàn)的是將str轉(zhuǎn)化為list。其中str=""是分隔符。

在看例子之前,請看官在交互模式下做如下操作:

>>>help(str.split)

得到了對這個內(nèi)置函數(shù)的完整說明。特別強(qiáng)調(diào):這是一種非常好的學(xué)習(xí)方法

  

split(...)
S.split([sep [,maxsplit]]) -> list of strings

  

Return a list of the words in the string S, using sep as the delimiter string. If maxsplit is given, at most maxsplit splits are done. If sep is not specified or is None, any whitespace string is a separator and empty strings are removed from the result.

不管是否看懂上面這段話,都可以看例子。還是希望看官能夠理解上面的內(nèi)容。

>>> line = "Hello.I am qiwsir.Welcome you." 

>>> line.split(".")     #以英文的句點(diǎn)為分隔符,得到list
["Hello", "I am qiwsir", "Welcome you", ""]

>>> line.split(".",1)   #這個1,就是表達(dá)了上文中的:If maxsplit is given, at most maxsplit splits are done.
["Hello", "I am qiwsir.Welcome you."]       

>>> name = "Albert Ainstain"    #也有可能用空格來做為分隔符
>>> name.split(" ")
["Albert", "Ainstain"]
"[sep]".join(list)

join可以說是split的逆運(yùn)算,舉例:

>>> name
["Albert", "Ainstain"]
>>> "".join(name)       #將list中的元素連接起來,但是沒有連接符,表示一個一個緊鄰著
"AlbertAinstain"
>>> ".".join(name)      #以英文的句點(diǎn)做為連接分隔符
"Albert.Ainstain"
>>> " ".join(name)      #以空格做為連接的分隔符
"Albert Ainstain"
公告:

有朋友愿意學(xué)習(xí)python,恭請到我的github上follower我,并且可以給我發(fā)郵件,也可以在微博上關(guān)注我。更多有關(guān)信息請看:易水禾:http://qiwsir.github.io

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/45290.html

相關(guān)文章

  • [基礎(chǔ)學(xué)Python]有點(diǎn)簡約的元組

    摘要:關(guān)于元組,上一講中涉及到了這個名詞。元組是用圓括號括起來的,其中的元素之間用逗號隔開。使用而不是如同擁有一個隱含的語句,說明這一數(shù)據(jù)是常量。必須是不可變的。只有字符串整數(shù)或其它對安全的才可以用作。 關(guān)于元組,上一講中涉及到了這個名詞。本講完整地講述它。 先看一個例子: >>>#變量引用str >>> s = abc >>> s abc >>>#如果這樣寫,就會是... >>> t...

    leap_frog 評論0 收藏0
  • [基礎(chǔ)學(xué)python]難以想象的for

    摘要:看這個標(biāo)題,有點(diǎn)匪夷所思嗎為什么是難以想象的呢因?yàn)樵谥校拇_是很常用而且很強(qiáng)悍,強(qiáng)悍到以至于另外一個被稱之為迭代的東西,在中就有點(diǎn)相形見絀了。然后將序列對應(yīng)的元素依次組成元組,做為一個的元素。 看這個標(biāo)題,有點(diǎn)匪夷所思嗎?為什么for是難以想象的呢?因?yàn)樵趐ython中,它的確是很常用而且很強(qiáng)悍,強(qiáng)悍到以至于另外一個被稱之為迭代的東西,在python中就有點(diǎn)相形見絀了。在別的語言中,...

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

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

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

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

    lewif 評論0 收藏0
  • [基礎(chǔ)學(xué)Python]字典,你還記得嗎?

    摘要:字典,這個東西你現(xiàn)在還用嗎隨著網(wǎng)絡(luò)的發(fā)展,用的人越來越少了。最早的名字叫伍記小字典,但未能編纂完成。新華字典由商務(wù)印書館出版。成為迄今為止世界出版史上最高發(fā)行量的字典。也被稱為關(guān)聯(lián)數(shù)組或哈希表。 字典,這個東西你現(xiàn)在還用嗎?隨著網(wǎng)絡(luò)的發(fā)展,用的人越來越少了。不少人習(xí)慣于在網(wǎng)上搜索,不僅有web版,乃至于已經(jīng)有手機(jī)版的各種字典了。我曾經(jīng)用過一本小小的《新華字典》。 《新華字典》是...

    galaxy_robot 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<