視頻講解
1.列表切片
前面學(xué)習(xí)的是如何處理列表的所有數(shù)據(jù)元素。Python還可以處理列表的部分元素,Python稱之為切片。
1.1創(chuàng)建切片
創(chuàng)建切片,可指定要使用的第一個數(shù)據(jù)元素的索引和最后一個數(shù)據(jù)元素的索引。與range函數(shù)一樣,Python在到達指定的第二個索引前面的數(shù)據(jù)元素后停止。比如要切片處理之前名單的列表,將列表中的前三個元素組成新列表,需要指定索引范圍為0-2,這將分別輸出索引為0、1、2的值。
其語法格式:列表變量名[起始索引值:終止索引值]
編寫程序如下所示:
我們可以發(fā)現(xiàn)輸出的結(jié)果還是一個列表,列表的數(shù)據(jù)元素值是原始列表中的第0個、第1個、第2個索引所對應(yīng)的數(shù)據(jù)元素值。我們可以生成列表的任意子集,例如,要提取列表第2-4個元素,那么索引值的范圍就是1,2,3,那么我們可將起始索引指定為1,終止索引指定為4,這樣就可以輸出索引分別為1,2,3所對應(yīng)的數(shù)據(jù)元素值,也就是第2-4個數(shù)據(jù)元素。
1.2無起始索引
如果沒有指定起始索引,Python就會從列表開頭開始提取,即從索引為0開始提取
其語法格式:列表變量名[:終止索引]
編寫程序如下所示
我們發(fā)現(xiàn)這兩次輸出的結(jié)果是相同的
1.3無終止索引
如果沒有指定終止索引,Python就會從起始索引開始一直提取到列表末尾
其語法格式:列表變量名[起始索引:]
編寫程序如下所示
我們可以發(fā)現(xiàn),此時輸出的是索引為3到索引最大為9所對應(yīng)的數(shù)據(jù)元素值,即從索引3開始一直到列表結(jié)束。
1.4負數(shù)索引
之前我們接觸過負數(shù)索引,-1代表列表末尾的最后一個數(shù)據(jù)元素,依此類推,-n代表列表末尾的第n個數(shù)據(jù)元素,因此我們可以結(jié)合負數(shù)索引和無終止索引,輸出從負數(shù)索引所代表的位置,一直到列表末尾的這段子集,編寫程序如下所示:
我們可以發(fā)現(xiàn)輸出的是索引為-3,-2,-1所對應(yīng)的數(shù)據(jù)元素值。
2.遍歷切片
如果我們要遍歷列表的部分元素,可在for循環(huán)中使用切片。遍歷前三人員姓名,并輸出該名字,編寫程序如下所示
在很多情況下,切片很有用。編寫Web應(yīng)用程序時,可使用切片來分頁顯示信息,并在每頁顯示數(shù)量合適的信息。
3.復(fù)制列表
經(jīng)常需要根據(jù)既有列表創(chuàng)建全新列表。要復(fù)制列表,可創(chuàng)建一個包含整個列表的切片,方法是同時省略起始索引和終止索引。讓Python創(chuàng)建一個始于第一個元素,終止于最后一個元素的切片,即復(fù)制整個列表。
其語法格式:列表變量名[:]
假設(shè)要復(fù)制姓名名單,編寫程序如下所示:
我們發(fā)現(xiàn)這兩個列表中的數(shù)據(jù)元素是完全相同的,為核實我們確實經(jīng)過復(fù)制,存在兩個列表,分別是names和copy_names,下面在每個列表中都添加一個不同的人員姓名,看看這兩個列表是否會發(fā)生變化。
編寫程序如下所示
我們發(fā)現(xiàn)這兩個列表,在分別添加一個不同的人員姓名之后,列表內(nèi),添加上的數(shù)據(jù)元素是不一致的。這說明實際存在著兩個列表。倘若我們只是簡單的將names賦值給copy_names,就不會得到兩個列表了。編寫程序如下所示
文章來源:http://www.zghlxwxcb.cn/news/detail-470497.html
我們可以發(fā)現(xiàn)雖然names和assignment_names各自添加了一個人員名單后,但最后的assignment_names添加了兩個姓名。這是為什么?
因為簡單的將names賦值給assignment_names后,names和assignment_names在內(nèi)存中都指向的是同一個列表。文章來源地址http://www.zghlxwxcb.cn/news/detail-470497.html
到了這里,關(guān)于【python基礎(chǔ)】復(fù)雜數(shù)據(jù)類型-列表類型(列表切片)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!