python學習之路--python基礎之列表操作
阿新 • • 發佈:2018-12-11
本文主要介紹下python列表的的一些基本操作
列表是我們在python程式設計中常用的資料型別之一,通過列表我們可以對資料實現最方便的儲存、修改等操作。
定義列表
1 names=['ZhangSan','LiSi','WangWu']
列表的訪問:通過下表來訪問列表中的元素,下標從0開始計數,還可以反著取,-1表示最後一個元素
1 >>> names[0] 2 'ZhangSan' 3 >>> names[2] 4 'WangWu' 5 >>> names[-1] 6 'WangWu' 7 >>> names[-2]8 'LiSi' 9 >>>
切片操作
1 >>> names=['ZhangSan','LiSi','WangWu','ZhaoLiu','Tom','Amy'] 2 >>> names[1:4] #取下標1到4之間的資料元素,包括1,不包括4 3 ['LiSi', 'WangWu', 'ZhaoLiu'] 4 >>> names[1:-1] #取小標1到-1的值,不包括-1 5 ['LiSi', 'WangWu', 'ZhaoLiu', 'Tom'] 6 >>> names[0:3]View Code7 ['ZhangSan', 'LiSi', 'WangWu'] 8 >>> names[:3] #如果是從頭開始取,0可以忽略,跟上句結果一樣 9 ['ZhangSan', 'LiSi', 'WangWu'] 10 >>> names[3:] #如果想取最後一位,必須不能寫-1 11 ['ZhaoLiu', 'Tom', 'Amy'] 12 >>> names[3:-1] #不包含-1 13 ['ZhaoLiu', 'Tom'] 14 >>> names[0::2] #2代表步長,每隔一個元素就取一個 15 ['ZhangSan', 'WangWu', 'Tom'] 16 >>> names[::2] #和上句效果一樣 17 ['ZhangSan', 'WangWu', 'Tom'] 18 >>>
追加操作:在列表最後追加元素列表
1 >>> names=['ZhangSan','LiSi','WangWu'] 2 >>> names.append("我是新人") 3 >>> names 4 ['ZhangSan', 'LiSi', 'WangWu', '我是新人'] 5 >>>View Code
插入操作
1 >>> names=['ZhangSan','LiSi','WangWu','Tony'] 2 >>> names.insert(2,"Tom") #在WangWu前面插入Tom 3 >>> names 4 ['ZhangSan', 'LiSi', 'Tom', 'WangWu', 'Tony'] 5 >>> names.insert(4,"LuXi") #在WangWu後面插入LuXi 6 >>> names 7 ['ZhangSan', 'LiSi', 'Tom', 'WangWu', 'LuXi', 'Tony'] 8 >>>View Code
修改操作
1 >>> names=['ZhangSan','LiSi','WangWu','Tony'] 2 >>> names[2]="John" ##將WangWu改成"John" 3 >>> names 4 ['ZhangSan', 'LiSi', 'John', 'Tony'] 5 >>>View Code
刪除操作
1 >>> names=['ZhangSan','LiSi','WangWu','ZhaoLiu','Tony','Tom','LiLei'] 2 >>> del names[2] #刪除下標為2的元素,即WangWu 3 >>> names 4 ['ZhangSan', 'LiSi', 'ZhaoLiu', 'Tony', 'Tom', 'LiLei'] 5 >>> del names[4] #刪除下標為4的元素,即Tom 6 >>> names 7 ['ZhangSan', 'LiSi', 'ZhaoLiu', 'Tony', 'LiLei'] 8 >>> names.remove("Tony") #刪除指定的元素Tony 9 >>> names 10 ['ZhangSan', 'LiSi', 'ZhaoLiu', 'LiLei'] 11 >>> names.pop() #刪除最後一個元素 12 'LiLei' 13 >>> names 14 ['ZhangSan', 'LiSi', 'ZhaoLiu'] 15 >>>View Code
擴充套件操作
1 >>> names=['ZhangSan', 'LiSi', 'ZhaoLiu'] 2 >>> b=[1,2,3] 3 >>> names.extend(b) 4 >>> names 5 ['ZhangSan', 'LiSi', 'ZhaoLiu', 1, 2, 3] 6 >>>View Code
統計列表中相同元素的個數
1 >>> names=['ZhangSan', 'LiSi', 'ZhaoLiu','LiSi',1, 2, 3] 2 >>> names.count("LiSi") 3 2 4 >>>View Code
排序和翻轉:優先順序 特殊符號>數字>大寫>小寫
1 >>> names=['ZhangSan', 'LiSi', 'ZhaoLiu','LiSi',1, 2, 3] 2 >>> names.sort() 3 Traceback (most recent call last): 4 File "<stdin>", line 1, in <module> 5 TypeError: unorderable types: int() < str() #在python3裡面不同資料型別不能在一起排序 6 >>> 7 >>> names[-1]='3' 8 >>> names[-2]='2' 9 >>> names[-3]='1' 10 >>> names 11 ['LiSi', 'LiSi', 'ZhangSan', 'ZhaoLiu', '1', '2', '3'] 12 >>> names.sort() #將列表排序 13 >>> names 14 ['1', '2', '3', 'LiSi', 'LiSi', 'ZhangSan', 'ZhaoLiu'] 15 >>> names.reverse() #將列表反轉 16 >>> names 17 ['ZhaoLiu', 'ZhangSan', 'LiSi', 'LiSi', '3', '2', '1'] 18 >>>View Code
獲取下標
1 >>> names=['ZhaoLiu', 'ZhangSan', 'LiSi', 'LiSi', '3', '2', '1'] 2 >>> names.index('LiSi') #如果列表中有多個相同元素,只返回找到的第一個的下標 3 2 4 >>> names.index('3') 5 4 6 >>>View Code
淺拷貝copy():
淺複製並不會產生一個獨立的物件單獨存在,他只是將原有的資料塊打上一個新標籤,所以當其中一個標籤被改變的時候,資料塊就會發生變化,另一個標籤也會隨之改變。1 >>> names=['ZhaoLiu', 'ZhangSan',['lilei','luxi'], 'LiSi','3', '2', '1'] 2 >>> name_copy=names.copy() #只是淺複製 3 >>> names 4 ['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '3', '2', '1'] 5 >>> name_copy 6 ['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '3', '2', '1'] 7 >>> names[1]="張三" #只改變names裡面的值,name_copy裡面的不變 8 >>> names 9 ['ZhaoLiu', '張三', ['lilei', 'luxi'], 'LiSi', '3', '2', '1'] 10 >>> name_copy 11 ['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '3', '2', '1'] 12 >>> names[2][0]="LILEI" #names和name_copy裡面的值都改變 13 >>> names 14 ['ZhaoLiu', '張三', ['LILEI', 'luxi'], 'LiSi', '3', '2', '1'] 15 >>> name_copy 16 ['ZhaoLiu', 'ZhangSan', ['LILEI', 'luxi'], 'LiSi', '3', '2', '1'] 17 >>> name_copy[2][1]='露西' 18 >>> names 19 ['ZhaoLiu', '張三', ['LILEI', '露西'], 'LiSi', '3', '2', '1'] 20 >>> name_copy 21 ['ZhaoLiu', 'ZhangSan', ['LILEI', '露西'], 'LiSi', '3', '2', '1']View Code
深複製deepcopy():
我們尋常意義的複製就是深複製,即將被複制物件完全再複製一遍作為獨立的新個體單獨存在。所以改變原有被複制物件不會對已經複製出來的新物件產生影響。1 #Author:Zhang XuLin 2 import copy 3 names=['ZhaoLiu', 'ZhangSan',['lilei','luxi'], 'LiSi','3', '2', '1'] 4 name_copy=copy.deepcopy(names) 5 print(names) 6 print(name_copy) 7 print("========================") 8 #['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '3', '2', '1'] 9 #['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '3', '2', '1'] 10 #======================== 11 names[1]="張三" 12 print(names) 13 print(name_copy) 14 print("========================") 15 #['ZhaoLiu', '張三', ['lilei', 'luxi'], 'LiSi', '3', '2', '1'] 16 #['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '3', '2', '1'] 17 #======================== 18 19 names[2][0]="LILEI" 20 print(names) 21 print(name_copy) 22 print("************************************") 23 #['ZhaoLiu', '張三', ['LILEI', 'luxi'], 'LiSi', '3', '2', '1'] 24 #['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '3', '2', '1'] 25 #************************************ 26 27 name_copy[2][1]='露西' 28 print(names) 29 print(name_copy) 30 31 #['ZhaoLiu', '張三', ['LILEI', 'luxi'], 'LiSi', '3', '2', '1'] 32 #['ZhaoLiu', 'ZhangSan', ['lilei', '露西'], 'LiSi', '3', '2', '1']View Code