- 機械工程師Python編程:入門、實戰與進階
- (西)安琪兒·索拉·奧爾巴塞塔
- 911字
- 2024-09-10 16:13:04
1.5.3 列表
列表(list)的元素有序但不唯一,且擁有索引。列表非常適合于元素需要有序存儲且元素索引已知的場景。
列表和元組相似,唯一的區別是元組不可變,而列表中的元素可以移動,也可以增刪。如果你確定一個集合中的元素不會被修改,請使用元組而非列表,因為操作元組比操作相同的列表更快。如果集合中的元素不可變,Python會進行一些優化。
創建Python列表,可以使用list函數:

或者使用字面量語法:

請注意,這里使用的是方括號([])。
使用len函數可以得到列表中元素的數量:

列表元素可以通過索引訪問(第一個元素的索引為0):

我們還可以替換列表中的現有元素:

注意,不要使用列表中不存在的索引值,否則會彈出IndexError:

使用append方法可以將元素添加到列表的末尾:

通常,我們感興趣的不僅是元素,還包括其索引。在這種情況下,我們可以使用enumerate函數,它會生成一個包含索引和元素的元組:

可以通過從其他列表中獲取連續的元素來創建一個新的列表。這個過程被稱為切片(slicing)。
列表切片
對列表進行切片操作,與使用方括號對列表進行索引類似,只不過我們使用的是兩個用冒號分隔的索引:[<起始值>:<結束值>]。示例如下:

在上例中,我們有一個列表a:[1,2,3,4]。通過對該列表進行切片,選取從索引1(包含)到索引3(不包含)的元素,來創建一個新列表b。
注意:請記住,Python中的切片操作總是包含起始索引的元素,不包括結束索引的元素。
圖1-4描繪了這個過程。

圖1-4 對列表進行切片
切片操作符中的起始值和結束值都是可選的,因為它們有默認值。默認情況下,起始索引被賦值為列表中的第一個索引,也就是0。結束索引被賦值為列表中的最后一個索引加1,等于len(the_list)。

在這個例子中,列表b_1和b_2都是列表a的副本。之所以說是副本,是因為它們確實是不同的列表,你可以放心地修改b_1或b_2,而不會改變列表a。你可以通過執行以下操作來測試這一點:

另一個小技巧是使用負索引。負索引的計數方向是從列表末尾開始,并向列表開頭移動。負索引可以用于切片,操作方式和正索引相同,只有一個小的區別:負索引從-1而非-0開始。例如,我們可以對一個列表切片,得到它最后的兩個值,如下:

這里我們創建了一個新的列表,從列表的倒數第二個元素開始,一直到最后一個元素。圖1-5描繪了這一點。
列表切片在Python中用途廣泛。
- 案例式C語言程序設計
- Learning Chef
- 零基礎學Scratch少兒編程:小學課本中的Scratch創意編程
- 編寫整潔的Python代碼(第2版)
- Learning AWS Lumberyard Game Development
- 時空數據建模及其應用
- 代替VBA!用Python輕松實現Excel編程
- SpringBoot從零開始學(視頻教學版)
- 深度學習入門:基于Python的理論與實現
- After Effects CC案例設計與經典插件(視頻教學版)
- 實戰Python網絡爬蟲
- Java多線程并發體系實戰(微課視頻版)
- 輕松學Scratch 3.0 少兒編程(全彩)
- Mastering Magento Theme Design
- 程序員的算法趣題2