python筆記2-數據類型:列表[List]經常使用操做

序列是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]

若是有寫的不對的,歡迎指出~~

相關文章
相關標籤/搜索