python3基礎語法——對list基本操作(創建/添加元素/取值/刪除/修改/常用函數)

序列是Python中最基本的數據結構。是任意對象的有序集合,可以嵌套也不必數據類型一致;操作包括索引,切片,加,乘,檢查成員等。下面將詳細介紹:

1. 創建

可以嵌套;可以不必數據類型一致(數字,字符串,列表,元組,集合或者字典等)

list=[]
list1= ['Google', 'Runoob', 1997, 2000]			# 結果爲:['Google', 'Runoob', 1997, 2000]
list2 = [1, (2, 3), 4, 5 ]

a = list([1, (2, 3), 4, 5 ])		# 結果爲:[1, (2, 3), 4, 5 ]
b = list("Google")					# 結果爲:['G', 'o', 'o', 'g', 'l', 'e']

2. 添加元素

函數 參數 功能描述
list.insert() index和’obj’(obj可以是單個元素,也可以是列表、元組等) 將obj作爲整體,在指定位置添加元素,如果指定的下標不存在,那麼就是在末尾添加
list.append() 可以是單個元素,也可以是列表、元組等 在list 末尾增加一個元素
list1.extend() 可以是單個元素,也可以是列表、元組等 不是將追加的列表或元組當成一個整體,而是追加列表或元組中的元素
“+” 列表、元組等“+”列表、元組等 追加列表或元組中的元素
“*” 列表、元組等“*”number 重複列表中元素number遍(不是對列表中的元素值進行擴大或縮小)
# 接上段代碼

list1.append(list2)			# list2作爲一個元素,添加到list1末尾:['Google', 'Runoob', 1997, 2000, [1, (2, 3), 4, 5]]
list1.extend(list2)			# list2中的每個元素,作爲list1中的元素逐個添加在末端:['Google', 'Runoob', 1997, 2000, 1, (2, 3), 4, 5]
list1+list2					# 追加列表或元組中的元素:['Google', 'Runoob', 1997, 2000, 1, (2, 3), 4, 5]
list1*3						# 列表中元素3遍:['Google', 'Runoob', 1997, 2000, 'Google', 'Runoob', 1997, 2000, 'Google', 'Runoob', 1997, 2000]

3. 取值

其中,index爲正數時,從左到右,從0開始記;如果index爲負數時,從右到左,從-1開始記

list[n] 取index=n的元素
list[n:m] 切片
list[:m] 切片從頭開始取到index=m-1
list[n:] 切片從index=n的元素取到最後
list[:] 取全部
list[n: m: s] s:步長;從index=n的開始到index=m-1,隔多少個元素取一次

注:切片同樣適用於字符串,字符串也有下標

4. 刪除

目的 函數 說明
根據目標元素所在位置的索引值進行刪除 del del是一個“語句”,沒有“參數”
根據元素的進行刪除 .remove() 函數是刪除第一個和指定值相同的元素,如果找不到該元素,該方法將會引發 ValueError 錯誤。
將列表中所有元素全部刪除 .clear()
a_list = [20, 'crazyit', 30, -4, (3, 4), 'crazyit', 3.4]

# 根據“索引”刪除元素
del a_list[-1]				# [20, 'crazyit', 30, -4, (3, 4), 'crazyit']
del a_list[1: 3]			# [20, -4, (3, 4), 'crazyit', 3.4]

# 根據“元素值”刪除第一個和指定值相同的元素
a_list.remove(30)			# # 刪除第一次找到的30:[20, 'crazyit', -4, (3, 4), 'crazyit', 3.4]
a_list.remove('crazyit')	# 刪除第一次找到的'crazyit':[20, 30, -4, (3, 4), 'crazyit', 3.4]
a_list.remove(30)			#再次嘗試刪除 30,引發 ValueEroor 錯誤

# 刪除整個列表
a_list.clear()				# []

5. 修改元素的值

列表的元素相當於變量,因此程序可以對列表的元素賦值,即修改列表的元素;方法有兩種: 索引和 slice 語法。其中,在執行slice操作時,並不要求新賦值的元素個數與原來的元素個數相等。這意味着通過這種方式既可爲列表增加元素,也可爲列表刪除元素。下面介紹slice使用方法:

b_list = list(range(1, 5))
c_list = list(range(1, 10))

b_list[1: 3] = ['a', 'b']	# 從index=1開始取到index=3(不包含)元素賦值爲新列表的元素:[1, 'a', 'b', 4]
b_list[2: 2] = ['x', 'y']	# 從index=2開始取到index=2(不包含)元素賦值爲新列表的元素,就是插入“元素”:[1, 'a', 'x', 'y', 'b', 4]
b_list[2: 5] = []			# 從index=2開始取到index=5(不包含)元素賦值爲空列表,就是刪除:[1, 'a', 4]
# 指定step爲2,被賦值的元素有4個,因此用於賦值的列表也必須有4個元素
c_list[2: 9: 2] = ['a', 'b', 'c', 'd']	# [1, 2, 'a', 4, 'b', 6, 'c', 8, 'd']

6. list常用方法

列表包含的所有方法,如下所示:

dir(list)
[‘append’, ‘clear’, ‘copy’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’]

函數 參數 功能
.count() obj 一個元素(可以是字符串,元組,列表等) 用於統計列表中該元素出現的次數
.index() obj,start,end 在列表的指定範圍內搜索元素obj,返回index值;如果找不到該元素,會引發 ValueError 錯誤
.pop() 空/index 移除列表中指定索引處的元素,如果不指定,默認會移除列表中最後一個元素
.reverse() 將列表中所有元素反向存放
.sort() key=None, reserse=False 對列表元素進行排序(key 參數用於指定從每個元素中提取一個用於比較的鍵。例如 key=str.lower 表示在排序時不區分字母大小寫;reverse 參數用於設置是否需要反轉排序,默認 False 表示從小到大排序;如果將該參數設爲 True,將會改爲從大到小排序)

注意:
其中使用 pop() 方法,可以實現一種常見的數據結構——棧。棧是一種特殊的數據結構,它可實現先入後出(FILO)功能,即先加入棧的元素,反而後出棧。

# .count()和.index()方法的使用
d_list = [2, 30, 'a', 'b', 'crazyit',[5, 30], 30]

d_list.count([5, 30])			# 計算列表中[5, 30]的出現次數
d_list.index(30))				# 定位元素30的出現位置
d_list.index(30, 2)				# 從索引2處開始、定位元素30的出現位置
d_list.index(30, 2, 4)			# 從索引2處到索引4處之間定位元素30的出現位置,因爲找不到該元素,會引發 ValueError 錯誤
# .sort()方法的使用
e_list = ['Python', 'Swift', 'Ruby', 'Go', 'Kotlin', 'Erlang']

e_list.sort()							# 對列表元素排序:默認按字符串包含的字符的編碼大小比較
e_list.sort(key=len)					# 指定key爲len,指定使用len函數對集合元素生成比較的鍵,也就是按字符串的長度比較大小
e_list.sort(key=len, reverse=True)		# 指定反向排序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章