跟老齊學(xué)Python之有容乃大的list(1)
前面的學(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ū)別的),也可能是文字、或者是聲音、視頻等。在python中(其它高級(jí)語(yǔ)言也類似)把狀如2,3這樣的數(shù)字劃分為一個(gè)類型,把狀如“你好”這樣的文字劃分一個(gè)類型,前者是int類型,后者是str類型(這里就不說(shuō)翻譯的名字了,請(qǐng)看官熟悉用英文的名稱,對(duì)日后編程大有好處,什么好處呢?誰(shuí)用誰(shuí)知道?。?/p>
前面還學(xué)習(xí)了變量,如果某個(gè)變量跟一個(gè)int類型的數(shù)據(jù)用線連著(行話是:賦值),那么這個(gè)變量我們就把它叫做int類型的變量;有時(shí)候還沒(méi)賦值呢,是準(zhǔn)備讓這個(gè)變量接收int類型的數(shù)據(jù),我們也需要將它聲明為int類型的變量。不過(guò),在python里面有一樣好處,變量不用提前聲明,隨用隨命名。
這一講中的list類型,也是python的一種數(shù)據(jù)類型。翻譯為:列表。下面的黑字,請(qǐng)看官注意了:
LIST在python中具有非常強(qiáng)大的功能。
定義
在python中,用方括號(hào)表示一個(gè)list,[ ]
在方括號(hào)里面,可以是int,也可以是str類型的數(shù)據(jù),甚至也能夠是True/False這種布爾值??聪旅娴睦樱貏e注意閱讀注釋。
>>> a=[] #定義了一個(gè)變量a,它是list類型,并且是空的。 >>> type(a) <type 'list'> #用內(nèi)置函數(shù)type()查看變量a的類型,為list >>> bool(a) #用內(nèi)置函數(shù)bool()看看list類型的變量a的布爾值,因?yàn)槭强盏?,所以為False False >>> print a #打印list類型的變量a []
不能總玩空的,來(lái)點(diǎn)實(shí)的吧。
>>> a=['2',3,'qiwsir.github.io'] >>> a ['2', 3, 'qiwsir.github.io'] >>> type(a) <type 'list'> >>> bool(a) True >>> print a ['2', 3, 'qiwsir.github.io']
用上述方法,定義一個(gè)list類型的變量和數(shù)據(jù)。
本講的標(biāo)題是“有容乃大的list”,就指明了list的一大特點(diǎn):可以無(wú)限大,就是說(shuō)list里面所能容納的元素?cái)?shù)量無(wú)限,當(dāng)然這是在硬件設(shè)備理想的情況下。
list索引
尚記得在《玩轉(zhuǎn)字符串(3)》中,曾經(jīng)給字符串進(jìn)行編號(hào),然后根據(jù)編號(hào)來(lái)獲取某個(gè)或者某部分字符,這樣的過(guò)程,就是“索引”(index)。
>>> url = "qiwsir.github.io" >>> url[2] 'w' >>> url[:4] 'qiws' >>> url[3:9] 'sir.gi'
在list中,也有類似的操作。只不過(guò)是以元素為單位,不是以字符為單位進(jìn)行索引了。看例子就明白了。
>>> a ['2', 3, 'qiwsir.github.io'] >>> a[0] #索引序號(hào)也是從0開(kāi)始 '2' >>> a[1] 3 >>> [2] [2] >>> a[:2] #跟str中的類似,切片的范圍是:包含開(kāi)始位置,到結(jié)束位置之前 ['2', 3] #不包含結(jié)束位置 >>> a[1:] [3, 'qiwsir.github.io'] >>> a[-1] #負(fù)數(shù)編號(hào)從右邊開(kāi)始 'qiwsir.github.io' >>> a[-2] 3 >>> a[:] ['2', 3, 'qiwsir.github.io']
對(duì)list的操作
任何一個(gè)行業(yè)都有自己的行話,如同古代的強(qiáng)盜,把撤退稱之為“扯乎”一樣,縱然是一個(gè)含義,但是強(qiáng)盜們?cè)敢庥盟麄冏约旱男袠I(yè)用語(yǔ),俗稱“黑話”。各行各業(yè)都如此。這樣做的目的我理解有兩個(gè),一個(gè)是某種保密;另外一個(gè)是行外人士顯示本行業(yè)的門檻,讓別人感覺(jué)這個(gè)行業(yè)很高深,從業(yè)者有一定水平。
不管怎么,在python和很多高級(jí)語(yǔ)言中,都給本來(lái)數(shù)學(xué)角度就是函數(shù)的東西,又在不同情況下有不同的稱呼,如方法、類等。當(dāng)然,這種稱呼,其實(shí)也是為了區(qū)分函數(shù)的不同功能。
前面在對(duì)str進(jìn)行操作的時(shí)候,有一些內(nèi)置函數(shù),比如s.strip(),這是去掉左右空格的內(nèi)置函數(shù),也是str的方法。按照一貫制的對(duì)稱法則,對(duì)list也會(huì)有一些操作方法。
追加元素
>>> a = ["good","python","I"]
>>> a
['good', 'python', 'I']
>>> a.append("like") #向list中添加str類型"like"
>>> a
['good', 'python', 'I', 'like']
>>> a.append(100) #向list中添加int類型100
>>> a
['good', 'python', 'I', 'like', 100]
官方文檔這樣描述list.append()方法
list.append(x) Add an item to the end of the list; equivalent to a[len(a):] = [x].
從以上描述中,以及本部分的標(biāo)題“追加元素”,是不是能夠理解list.append(x)的含義呢?即將新的元素x追加到list的尾部。
列位看官,如果您注意看上面官方文檔中的那句話,應(yīng)該注意到,還有后面半句: equivalent to a[len(a):] = [x],意思是說(shuō)list.append(x)等效于:a[len(a):]=[x]。這也相當(dāng)于告訴我們了另外一種追加元素的方法,并且兩種方法等效。
>>> a ['good', 'python', 'I', 'like', 100] >>> a[len(a):]=[3] #len(a),即得到list的長(zhǎng)度,這個(gè)長(zhǎng)度是指list中的元素個(gè)數(shù)。 >>> a ['good', 'python', 'I', 'like', 100, 3] >>> len(a) 6 >>> a[6:]=['xxoo'] >>> a ['good', 'python', 'I', 'like', 100, 3, 'xxoo']
順便說(shuō)一下len(),這個(gè)是用來(lái)獲取list,str等類型的數(shù)據(jù)長(zhǎng)度的。在字符串講解的時(shí)候也提到了。
>>> name = 'yeashape' >>> len(name) #str的長(zhǎng)度,是字符的個(gè)數(shù) 8 >>> a=[1,2,'a','b'] #list的長(zhǎng)度,是元素的個(gè)數(shù) >>> len(a) 4 >>> b=['yeashape'] >>> len(b) 1
下一講繼續(xù)list,有容乃大。
相關(guān)文章
一維信號(hào)小波去噪原理解析及python實(shí)現(xiàn)方式
這篇文章主要介紹了一維信號(hào)小波去噪原理解析及python實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
pytorch 在sequential中使用view來(lái)reshape的例子
今天小編就為大家分享一篇pytorch 在sequential中使用view來(lái)reshape的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
Python中NameError: name ‘Image‘ is not&nb
本文主要介紹了Python中NameError: name ‘Image‘ is not defined的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
Python時(shí)間戳轉(zhuǎn)換為字符串與字符串轉(zhuǎn)換為時(shí)間戳
在編寫代碼時(shí),往往涉及時(shí)間、日期、時(shí)間戳的相互轉(zhuǎn)換,下面這篇文章主要給大家介紹了關(guān)于Python時(shí)間戳轉(zhuǎn)換為字符串與字符串轉(zhuǎn)換為時(shí)間戳的相關(guān)資料,文中給出了詳細(xì)的實(shí)例代碼,需要的朋友可以參考下2023-02-02

