Python list 資料型別:列表
列表與字典(還沒接觸到)是Python中兩個主要的資料型別。他們可以被修改,可以增長可以縮短,也可以巢狀。
列表 list
列表可以完成大多數集合類的資料結構實現。它支援字元,數字,字串甚至可以包含列表(所謂巢狀)。
Python 的列表與C語言中的陣列訪問方法相同,通過偏移地址訪問。
下面舉幾個列表的例子,圖片來自《Python學習手冊(第三版)》
為了加速進度以及方便查詢,我們看一下對列表常用操作的整理,圖片來自《Python學習手冊(第三版)》
現在我們詳細講一下幾個list的操作。
首先我們明確,Python的list可以容納任何物件。不管他是什麼格式的。
1)建立list
建立列表的操作非常簡單,只要用中括號報過一系列逗號分隔的值就可以了。就像第一個圖片上那樣。
2)list 切片
定義新列表後,我們可以列表中的任何一個部分作為新的列表,該技術在dive in python 中稱為切片。
讓我們直接看程式。
a_list =['a','b','c','d','e','f'] # 建立一個列表 print a_list[1:3] # 在螢幕上列印一個切片
值得注意的是,在list偏移訪問中,與C中陣列類似,同樣用a_list[0]表示列表第一項。
上面的程式我們得到了如下的結果:
b c 分別是列表中第二,第三個元素,序號應該是1 和2 ,可以看出,對於 a_list[x,y] 的切片,切片片段為序號x到y-1之間的內容。
我們也可以擷取半段,讓我們看程式
# 位置 1 2 3 4 5 6
# 序號 0 1 2 3 4 5
a_list =['a','b','c','d','e','f'] # 定義 print a_list[:3] print a_list[3:]
從結果中我們可以看出,第一個片段[:3] 取的是從第一位到第三位的片段,而[3:] 獲取的是從第四位,到結尾的片段。
無論列表多長[:n]片段中總含有n個元素。
如果將x,y都留空,那麼程式將取列表內全部的元素,但是卻獲得了一個新的列表。
如果x , y中有負數怎麼辦,讓我們來看一下
# 位置 1 2 3 4 5 6 # 序號 0 1 2 3 4 5 a_list =['a','b','c','d','e','f'] print a_list[-1:3] print a_list[3:-1]
第一個print輸出了空的list, 第二個卻輸出了兩個。 認真看我們可以看出,負數是指從右往左數,正數是指,從左往右。
3)向列表list中新增元素
從第三題中,我們認識到append可以向list中新增元素。
a_list.append('NEW')
讓我們測試一下這句話.
# 位置 1 2 3 4 5 6 # 序號 0 1 2 3 4 5 a_list =['a','b','c','d','e','f'] a_list.append('NEW') print a_list
字串 NEW 已經被新增到該列表結尾處了.
當然除了append 這種只能在末尾新增 元素 的操作來說,我們還要插入操作
a_list.insert( n,35434)
insert 後面有兩個操作符, 那麼n表示插入哪個元素之後, 那串數表示插入什麼東西,當然任何型別的都可以,讓我們試一下這個新認識的方法.
# 位置 1 2 3 4 5 6 # 序號 0 1 2 3 4 5 a_list =['a','b','c','d','e','f'] a_list.insert(2,'NEW') print a_list a_list.insert(6,43223452) print a_list
可以看到,插入位置是n號元素之前。
這兩種操作都是單個元素插入,當我們需要將大量資料放在列表末尾的時候,我們就需要另一個新的方法了。
a_list.extend( [ 'fdaf',342 ] )
看一下例子就好了.
# 位置 1 2 3 4 5 6 # 序號 0 1 2 3 4 5 a_list =['a','b','c','d','e','f'] a_list.extend( [ 'fdaf',342 ] ) print a_list
當然我們還有更簡單的在末尾擴增list的方法.
+
沒錯,就是一個符號.
# 位置 1 2 3 4 5 6 # 序號 0 1 2 3 4 5 a_list =['a','b','c','d','e','f'] a_list+=[ 'fdaf',342 ] print a_list
看,我們得到了相同的結果!
4)在列表中查詢
在C語言中,遍歷陣列什麼的是常見的問題,我們需要知道,陣列中有沒有某個元素,某個元素在陣列中的什麼位置,某個元素在陣列中出現的次數 等等等。這些也許在C中需要長篇累牘的描述演算法,但是Python豐富的庫資源已經把這些問題解決了。讓我們看看下面的表吧:
a_list.count( 'NEW' ) #計算出現次數 a_list.index( 'NEW' ) #尋找第一次出現的位置 'NEW' in a_list #確認元素是否出現在list中
現在我們測試一下這幾種功能。
# 位置 1 2 3 4 5 6 # 序號 0 1 2 3 4 5 a_list =['a','b','c','d','e','f'] print a_list.count( 'NEW' ) #計算出現次數 print 'NEW' in a_list #確認元素是否出現在list中
我們沒有測試index,因為index 有個比較有趣的現象,讓我們來試一下。
# 位置 1 2 3 4 5 6 7 # 序號 0 1 2 3 4 5 6 a_list =['a','b','c','d','e','f','NEW'] print a_list.index( 'NEW' )
list中存在NEW,返回了正確的值。如果沒有NEW會怎麼樣的呢
# 位置 1 2 3 4 5 6 # 序號 0 1 2 3 4 5 a_list =['a','b','c','d','e','f'] print a_list.index( 'NEW' )
竟然提示錯誤,當然,這個就是引發了一個異常。之後我們會漸漸認識到這個做法的好處。
5)從列表中刪除元素
既然我們插入了元素,那麼我們也可以刪除他,但是,元素的插入與刪除並不像C語言那麼麻煩,刪除操作是如此的簡單,大家看下例子就會了。
當我們知道元素的確切位置的時候,我們使用
del a_list[n]
當我們不知道位置,而是知道刪除什麼的時候,使用:
a_list.remove( )
與求元素準確位置一樣,如果刪除一個list中不存在的元素會引發程式錯誤。
最後我們確認一點,空列表的布林值為False,其他的列表均為Ture。
from: http://www.cnblogs.com/Kaysin/archive/2013/02/08/2909402.html
相關推薦
Python list 資料型別:列表
列表與字典(還沒接觸到)是Python中兩個主要的資料型別。他們可以被修改,可以增長可以縮短,也可以巢狀。 列表 list 列表可以完成大多數集合類的資料結構實現。它支援字元,數字,字串甚至可以包含列表(所謂巢狀)。 Python 的列表與C語言中的陣列訪問方法
python基礎資料型別:list(列表)__004
1、在學習列表之前,重新複習一下編碼的規則 回顧編碼解析: (1)ASCII碼: 由字母、數字以及特殊字元構成的; 每一個字元為一個位元組,1位元組byte=8位bit (2)unicode:又稱萬國碼,由字母、數字、特殊字元和中文構成,每個字元都是32位:4個位元組,包括1一個
Python資料型別:列表和元組
列表 列表的常用操作 list.append() 追加成員 list.count(x) 計算列表中的引數x出現的次數 list.extend(L)向列表中追加另一個列表L list.index(
Python 基本資料型別(四): 列表型別
content - 列表的建立 - 列表的操作 - 列表的相關方法 - 列表的遍歷 - 列表的推導式 - 專欄:解析淺拷貝,深拷貝 1. 列表的建立 # 語法:列表名=[元素1,元素2....] # 列表的記憶體結構:記憶體圖 # 計算機記憶體中列表是有列表物件的。不同的
Python的資料型別2列表
Python的數值型別List,也就是列表 Python的列表比較類似與其他語言的陣列概念,但他又與其他語言陣列的概念有很大的不同 C語言、Java的陣列定義是這樣的,儲存多個同類型的數值的集合就叫陣列。 但是在Python中列表是可以儲存多種型別的資料的 例如一個普通資料型別的列表
Perl資料型別:列表與陣列
列表與陣列 1. 列表和陣列的定義 列表:指的是儲存列表的有序集合;(真實的資料) 陣列:儲存列表的變數;(儲存列表的容器) 對比與標量,列表對應於資料,陣列對應於變數; 陣列和列表的特性: 陣列和列表的每個
python基礎資料型別:深淺(copy)___007
1、賦值運算(賦值是同一個記憶體地址) (1)列表 例子: li = [1,2,3] li1 = li li.append('barry') print(li,id(li)) # [1, 2, 3, 'barry'] 4874824 print(li1,id(li1)) # [1,
python基礎資料型別:set() (集合)___006
1、集合:可變資料型別,它裡面的元素必須是不可變資料型別,無序,不重複。 2、集合例子:表現形式兩種 set1 = set({1,2,3}) set2 = {1,2,3} print(set1,type(set1)) # {1, 2, 3} <class 'set'> prin
python基礎資料型別:dict(字典)和近期知識點總結__005
字典dict 1、資料型別劃分:可變資料型別,不可變資料型別 (1)不可變資料型別(可雜湊):str、int、bool、元組 (2)可變資料型別(不可雜湊):dict、list、set 2、dict: key必須是不可變資料型別:可雜湊,鍵一般是唯一的,如果重複,會替換前面的,值
python基礎資料型別:str(字串)__003
1、str(字串):python3中凡是引號括起來的都是字串(包括單引號'字串內容',雙引號"字串內容") 2、字串的索引和切片 (1)索引 s = 'sdflajdf1212' print(s[0]) #擷取字串s的第一個元素s print(s[-1]) #擷取字串s的最後一個元
python資料型別之列表(list)和其常用方法
列表是python常用資料型別之一,是可變的,可由n = []建立,也可由n = list()建立,第一種方法更常用。 常用方法總結: # 建立方法 n = [] 或者 n = list() # index 查詢索引值 li = ['Edward', 'Mark'
python第7天:列表(list)型別詳細操作
Python包含 6 中內建的序列,包括列表、元組、字串、Unicode字串、buffer物件和xrange物件,昨天說的字串就是序列之一,今天我們來說說列表 序列都可以進行的操作包括索引,切片,加,乘,檢查成員。所以list作為序列中的一員,同樣有這樣的屬性 定義:ali
5. python標準資料型別---列表 List
序列是Python中最基本的資料結構。 序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。 Python有6個序列的內建型別,但最常見的是列表和元組。 序列都可以進行的操作包括索引,切片,加,乘,檢查成員。 此外,Pyth
[Python]學習基礎篇:列表(List)的淺解
python中list的一身鞏固列表首先先說明中python中數組下標的使用,在java,c或者c++中,每個數組的下標必須是正數,不能出現負數,如在java,c或者c++中使用a[-1],編輯器會報錯,而在python中數組的訪問時可以出現負數下標,表示倒數第幾個元素。list列表的定義 Python中列表
python for 資料型別詳解【列表】
range # 範圍 print(range(5)) print(list(range(10,0,-1))) [起始位置:終止位置:步長] range(起始位置,終止位置,步長) #顧頭不顧尾 1. 使用for迴圈和range列印50 - 0
小甲魚零基礎入門python第005講課後測試題及答案:閒聊之python的資料型別
0.在 Python 中, int 表示整型, 那你還記得 bool 、 float 和 str 分別表示什麼嗎? bool :布林型,ture代表1,false代表0;float:浮點型;str:字串 1. 你知道為什麼布林型別 (bool) 的 True 和 False 分別用 1 和 0
練習十七:python辨別資料型別
關於python辨別資料型別可以用python type()方法,那麼想要檢視一串字元中每項型別,並逐一輸出要怎麼處理?看下我是怎麼處理的 習題要求:輸入一行字元,分別統計其中英文字母、數字、空格、和其他字元的格式 1 string = input("輸入要統計的內容:") 2 letter,d
python語言中的資料型別之列表
資料型別及內建方法 列表: list 可變型別,有序 用途:用來記錄多個值(同屬性) 定義方式:在[ ]內用逗號分隔開多個任意型別的值 l=['a','b','c'] #l=li
Python基礎【資料結構:列表 | 元組 | 集合 | 字典】
序列 序列是Python中最基本的資料結構。包括字串,列表,元組,Unicode字串,buffer物件,xrange物件。序列中的每個元素都分配一個數字,即它的索引第一個索引是0,第二個索引是1,依此類推。 列表和元組 列表一個方括號內的逗號分隔值列表中可以存放不同的資料型別。
python特徵資料型別(列表、元祖、字典、集合)
(一)、主要內容 1.1、列表 1.2、元祖 1.3、字典 1.4、集合 列表 、字典、元祖、集合 (二)、列表 2.1、Python 提供了列表資料型別來儲存由多個值組成的序列。在列表中,只可以是任何型別,稱為元素或項。Pytho