1. 程式人生 > >python 列表切片

python 列表切片

這篇內容我們通過簡單的示例來學習如何處理列表的一部分,這在python中稱之為切片。

下面我們通過獲取一個成員列表中指定元素的例項來說明如何使用。

#group members
groups = ["張三","李四","王五","趙六","老七"];

#print the members range of 0-2
print(groups[0:3]);

在上述程式碼中,我們特別注意的是groups[0:3] 的寫法,其中0:3分別代表的是從列表第一個元素開始,到第三個元素終止。這樣的寫法在前面大家也見過,如果沒有印象的話,可以回想一下range函式的使用。

上述程式碼列印的也是一個列表,不過是group列表的子集,輸出大家可以參考以下:

['張三', '李四', '王五']

當然了,大家可以指定任意範圍的元素索引來提取我們想要的資訊。

如果,我們沒有指定第一個索引位置,會發生什麼情況呢?

print(groups[:3]);

這樣的python程式碼會輸出什麼內容呢?

['張三', '李四', '王五']

這是我想讓大家注意的一點,如果沒有指定第一個索引,python會預設從0開始處理列表,那麼大家看到這裡可能會想到,如果沒有指定終止索引呢?

答案和你們想的一樣,如果沒有指定最後一個索引,python會從列表末尾終止。

print(groups[0:]);

輸出:

['張三', '李四', '王五', '趙六', '老七']

那假如我們指定的列表索引超出了界限,python會如何處理呢?

假如有如下程式碼:

print(groups[0:10]);

會和我們預想的一樣python給我們提示列表越界嗎?

['張三', '李四', '王五', '趙六', '老七']

沒有,python還是正常的列印了整個列表並沒有提示有任何的錯誤。

前面學習過range函式,想必大家對下面的程式碼應該不陌生吧。

#print the members range of 0-2
print(groups[-3:]);

這行程式碼是從group列表的末尾第三個元素開始至列表末尾結束。這點大家想必很容易理解。大家只要記住:負數索引返回的的是距離列表末尾相應距離的元素。

輸出:

['王五', '趙六', '老七']

至於如何遍歷切片結果,這點參考前面學習過的for迴圈的使用,下面給一個簡單的列子:

#group members
groups = ["張三","李四","王五","趙六","老七"];

#print the members range of 0-2
for member in groups[0:3]:
    print("current member is:" + member);

輸出:

current member is:張三
current member is:李四
current member is:王五

在很多情況下,在我們的程式中需要對列表進行復制然後建立一個全新的列表。
大家可能第一想到的是下面這種寫法:

#group members
groups = ["張三","李四","王五","趙六","老七"];

new_groups = groups;

print("groups:");
print(groups);

print("new groups:");
print(new_groups);

輸出和大家預想的一樣,兩者的輸出是相同的:

groups:
['張三', '李四', '王五', '趙六', '老七']
new groups:
['張三', '李四', '王五', '趙六', '老七']

那麼,我們突然對new groups列表新增一個成員,兩者的輸出還會一致嗎?

new_groups.append("老八");

好了,老八加入了這個成員俱樂部,那麼原來的列表應該沒有老八這個人吧,我們在列印一下這兩個列表:

groups:
['張三', '李四', '王五', '趙六', '老七', '老八']
new groups:
['張三', '李四', '王五', '趙六', '老七', '老八']

咦,怎麼兩個列表都有老八呢?明明只會對新的列表增加了一個人,為什麼會對原來的列表產生影響呢?

在python中這種賦值語法其實是將變數groups和new_groups 關聯在了一起,兩者都是指向了同一個列表。

那麼該何如避免這個問題呢?

切片,上面提到了切片這個概念,通過切片產生了一個新的列表,這就相當於又重新建立了一個列表,這樣通過使用切片進行賦值的列表就沒有了關聯關係,自然不會產生影響。

#group members
groups = ["張三","李四","王五","趙六","老七"];

new_groups = groups[:];
new_groups.append("老八");

print("groups:");
print(groups);

print("new groups:");
print(new_groups);

輸出:

groups:
['張三', '李四', '王五', '趙六', '老七']
new groups:
['張三', '李四', '王五', '趙六', '老七', '老八']

相關推薦

Python列表切片用法示例 - 悠埔軍校群裡面討論的知識點

本文例項講述了Python列表切片用法。分享給大家供大家參考,具體如下:Python中符合序列的有序序列都支援切片(slice),例如列表,字串,元組。     格式:【start:end:step】     start:起始索引

python 列表切片 [:]、[::]

a=[0,1,2,3,4,5,6,7,8,9] print('a[1:3]:',a[1:3]) print('a[:3]:',a[:3]) print('a[3:]:',a[3:]) print('a[1:7:2]:',a[1:7:2]) #步長為2 print('a[::-1]:',a[::-1])

cs231n學習筆記第一天--------影象分類上下、Python基礎、線性分類------Python列表切片和numpy切片的區別

前言: 老規矩,前言的碎碎念還是得有的,cs231n的課之前就想刷來著,室友也一直盯著我,讓我刷,說我基礎太差,不刷不行,好好好,我來重拾一下,看看究竟用什麼方法,才能讓我堅持下去。 雖然自己也曾經呼叫過一些API,整天就是配環境,刷系統,改bug。 但是感覺這

python列表切片和巢狀列表取值操作

給出列表切片的格式:[開頭元素::步長] # 輸出直到最後一個元素,(最後一個冒號和步長可以省略,下同) [開頭元素:結尾元素(不含):步長] # 其中,-1表示list最後一個元素首先來看最簡單的單一列表:a = [1,2,3,4] a[:] a[::] a[:3] a[

python 列表切片

這篇內容我們通過簡單的示例來學習如何處理列表的一部分,這在python中稱之為切片。 下面我們通過獲取一個成員列表中指定元素的例項來說明如何使用。 #group members groups = ["張三","李四","王五","趙六","老七"];

python列表切片筆記_筆記1

python  列表 切片 注意點 1、是從左往右開始切片 2、切片左側封閉結束開發[顧頭不顧尾] 4、如果使用負數切片,是按從小到大,如果非需要是從大到小的,需要根據步長 如:[-4:-2] 或者 [-2,-5,-1] 5、列表是可變的。

python 列表,元組,字符串 切片 超出索引值不報錯

如果 -1 使用 png image pytho log 邊界 技術 通常情況下,當我們以索引值對一個字符串,或者元組,列表取值時,如果索引超出邊界,就會報錯,但是如果我們使用切片呢? 字符串: 列表: 元組: 可以看到,這三種情況都沒有報錯,而是返回對應

python列表切片操作

tar 元素 append() 插入 根據 ins class ever sta 1 a=[‘zhao‘,‘qian‘,‘sun‘,‘li‘,‘zhou‘,‘‘] 2 3 #增刪改查 4 #查 切片 [] 5 print(a[1:])#取到最後 6 pr

關於python列表(list)切片[start:stop:step]的理解

執行 結果 實驗 變量名 列表 class start print 編譯 列表切片的語法 1 names=["bbguo","bbliang","bbxi","bbwang","bbbo","bbya","bbyi","bbqing"] 2 print(a[0:3:2])

python 輸出所有大小寫字母, range()以及列表切片

def list函數 方便 div cti 導入 right fun key 所以在寫的時候,只要把它們的ASCII列出,並轉化成字符型chr 即可。 print [chr(i) for i in range(65,91)]#所有大寫字母 print [chr(i) f

Python程式設計從入門到實踐》記錄之列表切片

目錄 1、切片 2、遍歷切片 3、使用切片複製列表 、切片 切片需要兩個引數: 第一個引數:第一個元素的索引,若省略,預設從列表第一個元素開始 第二個引數:最後一個元素的索引加1(因為其類似於range()函式,不包含第二個元素索引 。若省略,預設

python基礎之列表切片

例 1: >>> List=[1,2,3,4,5,6,7,8,9,0] >>> a=List[ : : -2] #列表切片,帶步長 >>> a [0, 8, 6, 4, 2] 列表切片分析解析:先判斷方向(從左到右還是從右到左),再看步長

(D04) Python- 字串切片 格式化表示式 while語句 break for語句 range函式 列表

字串Str 字串的 索引,切片 索引 取出一個字元 切片: 取出一些字元重新組成字串 索引的語法: 字串[整數表示式] 切片的語法:

Python切片、迭代和列表生成式

切片 L=list(range(5)) 取相應範圍內的元素:L[m:n]表示從索引m開始取,直到索引n為止,但不包括索引n,如果第一個索引是0,還可以省略: L[0:3]/L[:3]——[1,2,3] 還支援倒數切片: L[-2:]——[4,5] L[-2:-

python列表切片功能的總結和彙總

建立一個列表 列表中可以放置子列表 l=[0,1,2,3,[0,1,2,3]] print("原列表:",l) 原列表: [0, 1, 2, 3, [0, 1, 2, 3]] print("索引從零開始:",l[0],l[1],l[2],l[3],l[4])

Python列表:開始、結束、步長值(列表切片的使用)

開始 結束 步長值 我們知道,在for迴圈裡range可以呼叫3個引數,分別對應開始、結束和步長值。用於列表使,我們可以將這三個引數在中括號中指定,用冒號字元分隔。 使用時,這三個值都是可選的。 如果沒有指定開始值,則預設為0; 如果沒有指定結束值,則取列表允許

使用列表的一部分-python切片

python中的列表是由一系列按特定順序排列的元素組成,其中的元素可以是任何東西,而且其中的元素之間沒有任何關係,有些類似與c#中的一維陣列,只是相比較看來python列表的內涵要深的多。 在python中,用方括號[];來標識列表,並用都好來分割其中的元素,簡單例項如下: countr

python---列表切片、增加、刪除、修改、成員關係、列表推導、排序翻轉

python—列表的切片、增加、刪除、修改、成員關係、列表推導、排序翻轉 一、列表: 1、有序的集合 2、通過偏移來索引,從而讀取資料 3、支援巢狀 4、可變的型別 >>> a = [1,2,3,4,5,6,7] >>

python切片,迭代,列表生成式

python的程式碼需要有優雅,明確,簡單的特性。代表著需要程式碼越少越好,越簡單越好。為此,python提供了許多高階特性,如切片,迭代,列表生成式等等,可以有效的用簡單程式碼實現複雜功能。 1,切片 適用型別:list, tuple, str 切片功能簡單說就是實現擷取,不管是列表list,不可變列

python 列表,元組,字串 切片 超出索引值不報錯

通常情況下,當我們以索引值對一個字串,或者元組,列表取值時,如果索引超出邊界,就會報錯,但是如果我們使用切片呢? 字串: 列表:  元組: 可以看到,這三種情況都沒有報錯,而是返回對應型別的空結果!