十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
轉(zhuǎn)自
目前創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、銅鼓網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
Python? range() 函數(shù)返回的是一個(gè)可迭代對(duì)象(類型是對(duì)象),而不是列表類型, 所以打印的時(shí)候不會(huì)打印列表。
函數(shù)語(yǔ)法:
range(stop)range(start,stop,step)//默認(rèn)start為0,step為1
Python? list() 函數(shù)是對(duì)象迭代器,可以把range()返回的可迭代對(duì)象轉(zhuǎn)為一個(gè)列表,返回的變量類型為列表。
list() 方法用于將元組轉(zhuǎn)換為列表。
注: 元組與列表是非常類似的,區(qū)別在于元組的元素值不能修改,元組是放在括號(hào)中( ),列表是放于方括號(hào)中[ ]。
元組中只包含一個(gè)元素時(shí),需要在元素后面添加逗號(hào)
tup1=(50,)
list、元組與字符串的索引一樣,列表索引從0開(kāi)始。列表可以進(jìn)行截取、組合等。
#numnote.py
def?numnote(lst):
msg=[?]
for?num?in?lst:
if?num0:
s=str(num)+'?is?negative'
elif?0=num=9:
s=str(num)+'?is?a?digit'
else:
continue
msg.append(s)
return?msg
這個(gè)應(yīng)該是書(shū)上有問(wèn)題吧。
加一個(gè)?else:?continue??就ok了
列表是一種有序的集合,有點(diǎn)類似c里面的數(shù)組。它的特點(diǎn)是,可以隨時(shí)向里面添加或刪除其中的元素,在python中經(jīng)常用來(lái)存放數(shù)據(jù)。列表的特點(diǎn)是中括號(hào),內(nèi)部元素用逗號(hào)隔開(kāi)。
在這個(gè)列表中,可以放進(jìn)去任何元素,不論你的元素是字符串、整型、浮點(diǎn)型、還是布爾值、空值,包括列表什么的,都可以放進(jìn)去。
元素與元素之間,用逗號(hào)隔開(kāi)。
列表會(huì)為每個(gè)元素分配序號(hào),這個(gè)序號(hào)代表它的位置,稱為索引(index),第一個(gè)元素的位置是0,第二個(gè)元素是1,以此類推。
使用索引獲取列表中的值時(shí),需要使用中括號(hào)來(lái)訪問(wèn),在中括號(hào)前面加上列表名,中括號(hào)內(nèi)部是元素的索引。
0代表第一個(gè)元素的位置,1代表第二個(gè),-1代表倒數(shù)第一個(gè),-2代表倒數(shù)第二個(gè)
使用 len() 函數(shù),可以查看列表里面有多少個(gè)元素
在python中,列表的操作是非常的靈活的,我們可以向其中添加或刪除元素。
添加使用 list.append() 函數(shù)
list.append() 函數(shù)是將元素插入到列表的末尾,當(dāng)我們想在特定位置插入元素時(shí)可以使用 list.insert() 函數(shù)
list.insert() 函數(shù)接受兩個(gè)參數(shù),第一個(gè)參數(shù)是插入位置,第二個(gè)參數(shù)是要插入的元素。
需要注意的是,在使用append和insert時(shí),必須在前面注明要操作的列表。就像上面的例子,我們要操作classmates這個(gè)列表,所以必須寫(xiě)成 classmates.append() 或 classmates.insert() ,如果不這么寫(xiě),計(jì)算機(jī)就不知道你要往哪個(gè)列表中加入元素。
沒(méi)有特殊情況的話,推薦使用append()函數(shù)添加元素,因?yàn)槭褂胊ppend的時(shí)候,元素默認(rèn)加在列表尾部,不會(huì)造成其他元素索引值的改變。如果使用insert的話,就像上面的insert(1,'Tom'),在位置1插入'Tom'后,Tom后面所有的元素,索引值都加了一個(gè)1,列表中元素越多,受影響的程度越大,因此使用append()函數(shù)要比insert()函數(shù)更快。
刪除列表中元素的方法有三種
del后面需要用索引的方式表明要?jiǎng)h除的元素,也就是上面的例子,names[1]代表names中的第二個(gè)元素,使用del即可刪除
list.pop() 函數(shù)與del差不多,都是使用索引值進(jìn)行刪除,只不過(guò)寫(xiě)法不同。
我們可以發(fā)現(xiàn),執(zhí)行 names.pop(1) 后,python shell打印出了第二個(gè)元素的值,也就是我們要?jiǎng)h除的那個(gè)值,這是因?yàn)?pop() 這個(gè)函數(shù),是有返回值的,有時(shí)候我們需要使用這個(gè)值,這個(gè)時(shí)候就可以用變量存起來(lái)。
這樣我們就可以通過(guò)調(diào)用a而使用剛才刪掉的元素了。
list.remove() 函數(shù)的作用是刪除第一個(gè)匹配的元素,上面的例子中,names這個(gè)列表里面,有兩個(gè)'Bob',remove函數(shù)只刪除了第一個(gè)'Bob'。這就是 list.remove() 函數(shù)的特點(diǎn)。
有時(shí)候我們想使用列表的前10個(gè)元素,或者前n個(gè)元素,這時(shí)候就應(yīng)該使用列表的切片。
切片和索引類似,都是使用中括號(hào),區(qū)別是,索引中的中括號(hào)里面只有一個(gè)數(shù),而切片不同。切片是切割列表,形成切割下來(lái)的部分形成新的列表。
切片: list[start:end:[step=1]] ,這就是切片的表達(dá)式,要求start和end兩者必須有一個(gè),step不是可以不指定,不指定的時(shí)候默認(rèn)為1。
切片該怎么理解呢,start就是開(kāi)始的位置,end就是結(jié)束的位置。切片有個(gè)特點(diǎn)是“取前不取后”,看上面那個(gè)例子可以發(fā)現(xiàn),1作為start,3作為end,1代表第二個(gè)元素,3代表第四個(gè)元素,列表切片的時(shí)候,是不取后面的那個(gè)數(shù)字對(duì)應(yīng)的元素的,也就是不取第四個(gè)元素,所以names[1:3]只取了第二個(gè)元素和第三個(gè)元素,這就是所謂的取前不取后。
再看下一個(gè)例子。
當(dāng)不指定start或者end的時(shí)候,start默認(rèn)為0,end默認(rèn)為最后一個(gè)元素的索引值+1,因?yàn)椤叭∏安蝗『蟆?,要想取到最后一個(gè)元素,必須加個(gè)1才行。
上例中,用 len(numbers) 表示了最后一個(gè)元素的索引值,因?yàn)樗饕祻?開(kāi)始,最后一個(gè)元素的索引值一定是列表內(nèi)元素個(gè)數(shù)-1,根據(jù)“取前不取后”,在end位置上的數(shù)字應(yīng)該+1,所以最后就等于 len(numbers) 了。
當(dāng)不設(shè)定start和end的時(shí)候,就默認(rèn)取所有的元素了。
當(dāng)加入step,這個(gè)選項(xiàng)后,step代表步長(zhǎng),默認(rèn)為1,設(shè)定成2的時(shí)候,就是隔一個(gè)取一個(gè),設(shè)定成3時(shí)就是隔兩個(gè)取一個(gè)。
上例中,第一個(gè)切片,start和end均未設(shè)定,因此從第一個(gè)元素開(kāi)始,隔一個(gè)取一個(gè),得到了所有奇數(shù)位置的元素。
第二個(gè)切片,start設(shè)定為了1,因此取了所有偶數(shù)位置的元素。
3在列表中,0不在列表中,所以 3 in a 是True,而 0 in a 是False
更多關(guān)于列表的信息可以通過(guò)使用 help(list) 查看幫助文檔。