序列是Python中最基本的數據結構。序列中的每一個元素都分配一個數字 - 它的位置,或索引,索引從0開始,依此類推。數組
序列均可以進行的操做:包括 索引,切片,加,乘,檢查成員。數據結構
列表是最經常使用的Python數據類型,list 是一種有序的集合、列表是可變變量,即能經過列表的下標進行修改值app
建立一個列表,只要把逗號分隔的不一樣的數據項使用方括號括起來便可。以下所示:spa
nums = [1, 2, 3, 'beijing', 'shanghai'] #定義列表 num1 = [1, 2, 3, 4, 5, 6] #List內元素爲int類型 num2 = ['a',' b', 'c', 'd'] #List內元素爲str類型
List數據類型的以下:code
增長元素:blog
nums = [1, 2, 3, 'beijing', 'shanghai'] #定義列表 nums.append('byz') #添加的值從最末尾添加,執行結果:[1, 2, 3,'beijing', 'shanghai','byz'] nums.insert(2, '888') #在指定位置添加元素,2表明下標,執行結果:[1, 2, '888', 3, 'beijing', 'shanghai', 'byz']
刪除元素:排序
nums = [1, 2, 3, 'beijing', 'shanghai'] # pop(num) 方法的返回值就是刪除的指定位置的元素值 nums.pop() #默認刪除最後一個元素,執行結果:[1, 2, 3, 'beijing'] nums.pop(2) #刪除指定位置的元素,執行結果:[1, 2, 'beijing'] nums.clear() #清空列表,執行結果:[] del nums[0] #使用del關鍵字,刪除指定位置的元素,0表明下標,執行結果:[ 2, 'beijing'] nums.remove('beijing') #remove()刪除方法,傳入的參數是 元素值,pop()刪除指定位置元素,傳入的參數是下標
修改元素:索引
nums = [1, 2, 3, 'beijing', 'shanghai'] #定義列表 #修改,經過下標來修改list元素值 nums[0] = 'hello' #修改List內的元素值,執行結果:['hello', 2, 3, 'beijing', 'shanghai'] nums[5] = 'haha' #修改不存在的下標,報錯信息:IndexError: list assignment index out of range
查詢元素:rem
nums = [1, 2, 3, 'beijing', 'shanghai'] #定義列表 #查詢,經過下標和for循環來遍歷取值 print(nums[3]) #經過下標取值,下標從0開始,執行結果:beijing for num in nums: print(num) #經過for循環,遍歷list內的元素
List中的count(元素)方法,能夠用來判斷元素是否存在List內,用法以下:字符串
#判斷元素是否存在List內,可使用in方法,也可使用count()方法 names = [1, 2, 3, 'beijing', 'beijing', 'shanghai'] print(names.count('beijing')) #查找元素在list裏面的次數,執行結果爲:2 print(names.count('hahah')) #若查找的元素不在list裏面,返回結果爲0 num = names.count('beijing') if num >0: print('說明元素存在') else: print('元素不存在')
獲取List元素的下標,用法以下:
names = [1, 2, 3, 'beijing', 'beijing', 'shanghai'] print(names.index('beijing')) #獲取beijing這個元素的下標值,若是有多個元素時,返回第一個元素的下標值 print(names.index('a')) #若是查找的元素不存,則報錯:ValueError: 'a' is not in list print(names.index('beijing', 2)) #能夠指定從哪一個元素開始查找,2表明開始查找的下標 print(names.index('beijing', 2, 3)) #能夠指定查找範圍,2,3表明開始、結束的下標值,查找範圍不包含結束下標對應的元素,顧頭不顧尾
List的extend方法,更改列表的值,用法以下:
names = [1, 2, 3, 'beijing', 'beijing', 'shanghai'] status = ['ywq', 'lhl', 'yqq'] print('列表合併的結果:', status + names) #兩個列表List合併,產生一個新的變量,執行結果:['ywq', 'lhl', 'yqq', 1, 2, 3, 'beijing', 'beijing', 'shanghai'] print('這個是extend:', status.extend(names)) #extens沒有返回值,執行結果爲:None print('extens後的status:', status) #將names列表的 添加 到status裏,status的值進行了更改
list的extend 與 appen方法的區別:
nums = [23, 34, 21, 2, 33, 456, 12] status = ['a','b','c'] print(status.extend(nums)) print(status) #extends是將nums的添加到 status,執行結果爲一維數組:['a', 'b', 'c', 23, 34, 21, 2, 33, 456, 12]
nums = [23, 34, 21, 2, 33, 456, 12] status = ['a','b','c'] print(status.append(nums)) print(status) #append 是nums列表做爲一個元素 添加到status列表的最後面,執行結果爲二維數組:['a', 'b', 'c', [23, 34, 21, 2, 33, 456, 12]]
排序sort方法,用法以下:
nums = [23, 34, 21, 2, 33, 456, 12] print('nums排序前:', nums) #執行結果:[23, 34, 21, 2, 33, 456, 12] nums.sort() #默認是升序排列 print('sort 排序後的nums:', nums) #執行結果:[2, 12, 21, 23, 33, 34, 456] nums.sort(reverse=True) #指定reverse=True,排序爲降序排列 print('降序排列的nums:', nums) #執行結果:[456, 34, 33, 23, 21, 12, 2]
反轉數組,以下:
nums = [23, 34, 21, 2, 33, 456, 12] print(nums.reverse()) #反轉的是nums的值,nums.reverse()沒有返回值,執行結果爲None print(nums) #反轉後的nums,執行結果:[12, 456, 33, 2, 21, 34, 23]
多維數組,獲取元素的值:
num = [1, 2, 9.8, ['a', 'b', ['hehe', 'haha']]] print(num[3][0]) #獲取二維數組 a這個元素值 print(num[3][2][0]) #獲取三維數組,hehe這個元素值
切片操做
切片也就是另外一種方式獲取列表的值,它能夠獲取多個元素,能夠理解爲,從第幾個元素開始,到第幾個元素結束,獲取他們之間的值,格式是name:[1:10],好比說要獲取name的第一個元素到第五個元素,就能夠用name[0:6],切片是不包含後面那個元素的值的,記住顧頭不顧尾;
names = ['zcl','py','byz'] print(names[0:2]) #切片的意思就是從list或者字符串裏面,取幾個元素,執行結果['zcl', 'py'] print(names[:2]) #默認從0開始取值,開始下標0能夠不用寫,執行結果:['zcl', 'py'] print(names[1:]) #從第1個下標開始取值,取後面全部的值,那麼結束下標值能夠不寫 print(names[:]) #不寫開始、結束的下標時,默認取整個列表的值 print(names[-1:]) #取最後一個值,下標從-1開始
切片的步長:
nums = list(range(1,21)) print(nums[0:11]) #執行結果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] print(nums[0:11:2]) #每隔2個字符取一個值,2是步長,執行結果:[1, 3, 5, 7, 9, 11] print(nums[::-1]) #切片步長爲負數時,從後往前取值,取整個列表的值,執行結果:[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
若是有寫的不對的,歡迎指出~~