Python基礎 5.3 列表
阿新 • • 發佈:2019-01-06
1 列表的概述
列表是一個有序的,可修改的,元素以逗號分割,以中括號包圍的序列。
列表的索引和字串的索引類似,但不完全相同,因為列表可以修改所以我們可以通過列表的索引來修改列表。
定義列表格式:
變數名= [ 元素1,元素2,元素3,............]
列表的作用:儲存多個數據
2 python列表的定義以及檢視列表型別
name = ['zs','ls','ww'] print(name) print(type(name)) ['zs', 'ls', 'ww'] <class 'list'>
通過索引獲取列表中的元素:
ret = name[0]
print(ret)
zs
3. 列表的迴圈遍歷
names = ['zs','ls','ww']
for name in names:
print(name)
(1)列表的新增
append 追加,在列表的尾部加入指定的元素
extend 將指定的序列的元素依次追加到列表的尾部(合併),不會去重複內容
insert 將指定的元素插入到對應的索引位上,注意負索引倒序插入,超過索引就會在末尾插入
lst = ['zs','ls','ww']
lst.append('趙四')
print(lst)
['zs', 'ls', 'ww', '趙四']
lst = ['zs','ls','ww']
lst.append('趙四')
print(lst)
lst.insert(0,'唐僧')
print(lst)
lst.insert(2,'張三')
print(lst)
['zs', 'ls', 'ww', '趙四']
['唐僧', 'zs', 'ls', 'ww', '趙四']
['唐僧', 'zs', '張三', 'ls', 'ww', '趙四']
lst1 = ['zs','ls','ww'] lst2 = ['悟空','八戒','唐僧'] lst3 = lst1 + lst2 print(lst3) ['zs', 'ls', 'ww', '悟空', '八戒', '唐僧']
lst1 = ['zs','ls','ww']
lst2 = ['悟空','八戒','唐僧']
lst1.extend(lst2)
print(lst1)
['zs', 'ls', 'ww', '悟空', '八戒', '唐僧']
(2)列表的刪除
pop 彈出,返回並刪除指定索引位上的資料,預設刪除索引位-1的資料(從右向左刪除)
remove 從左向右刪除一個指定的元素
del 刪除整個列表或列表的資料,del是python的內建功能,不是列表獨有的
lst1 = ['zs','ls','ww','sq']
lst2 = ['悟空','八戒','唐僧','沙僧']
lst3 = lst1.pop()
print(lst3)
print(lst1)
#按照索引刪除
lst4 = lst2.pop(1)
print(lst2)
print(lst4)
'''
sq
['zs', 'ls', 'ww']
['悟空', '唐僧', '沙僧']
八戒
'''
lst1 = ['zs','ls','ww','sq']
lst2 = ['悟空','八戒','唐僧','沙僧']
lst1.remove('ww')
print(lst1)
#clear 清空列表
lst2.clear()
print(lst2)
'''
['zs', 'ls', 'sq']
[]
'''
lst1 = ['zs','ls','ww','sq']
del lst1[0] #刪除指定元素
print(lst1)
['ls','ww','sq']
(3)列表的查詢
注意 :列表沒有find方法
count 計數,返回要計數的元素在列表當中的個數
index 查詢,從左往右返回查詢到第一個指定元素的索引,如果沒有找到,報錯
lst1 = ['zs','ls','ww','sq']
lst1[0] = '修改' #按照索引修改
print(lst1)
['修改', 'ls', 'ww', 'sq']
lst1 = ['zs','ls','ww','sq']
lst2 = lst1[1] #按照索引查詢
print(lst2)
index = lst1.index('ls') #按照關鍵字查詢
print(index)
num = lst1.count('ls')
print(num) #計數 檢視關鍵字個數
lst3 = lst1[0:4:2]
print(lst3) # 按照切片查詢
'''
ls
1
1
['zs', 'ww']
'''
(4)列表的排序
reverse 順序倒序
sort 按照 ASCII 碼錶順序進行排序
lst1 = ['zs','ls','ww','sq']
lst2 = ['悟空','八戒','唐僧','老沙']
lst1.sort() #升序排序
print(lst1)
lst1.sort(reverse=True) #降序排序
print(lst1)
lst2.reverse() #翻轉
print(lst2)
'''
['ls', 'sq', 'ww', 'zs']
['zs', 'ww', 'sq', 'ls']
['老沙', '唐僧', '八戒', '悟空']
'''
4. 列表的深淺拷貝
淺拷貝
對於淺copy來說,第一層建立的是新的記憶體地址,而從第二層開始,指向的都是同一個記憶體地址,所以,對於第二層以及更深的層數來說,保持一致性。
lst1 = ['zs','ls','ww',['sq','ew']]
# lst2 = ['悟空','八戒','唐僧','老沙','小白龍']
lst2 = lst1.copy()
#檢視lst1和lst2中的內容
print(lst1)
print(lst2)
#修改lst2中的第一層內容
lst2[0] = '趙四'
print(lst1)
print(lst2)
#修改第二層內容
lst2[3][0] = '神奇'
print(lst1)
print(lst2)
'''
['zs', 'ls', 'ww', ['sq', 'ew']]
['zs', 'ls', 'ww', ['sq', 'ew']]
['zs', 'ls', 'ww', ['sq', 'ew']]
['趙四', 'ls', 'ww', ['sq', 'ew']]
['zs', 'ls', 'ww', ['神奇', 'ew']]
['趙四', 'ls', 'ww', ['神奇', 'ew']]
'''
深拷貝
匯入copy模組
import copy
copy.deepcopy()
import copy
#記得引入模組 否則會報錯
lst1 = ['zs','ls','ww',['sq','ew']]
lst2 = copy.deepcopy(lst1)
#檢視lst1和lst2中的內容
print(lst1)
print(lst2)
#修改lst2中的第一層內容
lst2[0] = '趙四'
print(lst1)
print(lst2)
#修改第二層內容
lst2[3][0] = '神奇'
print(lst1)
print(lst2)
'''
['zs', 'ls', 'ww', ['sq', 'ew']]
['zs', 'ls', 'ww', ['sq', 'ew']]
['zs', 'ls', 'ww', ['sq', 'ew']]
['趙四', 'ls', 'ww', ['sq', 'ew']]
['zs', 'ls', 'ww', ['sq', 'ew']]
['趙四', 'ls', 'ww', ['神奇', 'ew']]
'''