python基礎系列——列表知識點,函數及操作(持續更新中)

前言:

此文爲本人在學習python過程中,整理出來的學習筆記。主要參考書目有:
1、《python編程:從入門到實踐》;
2、《python學習手冊》;
3、《像計算機科學家一樣思考Python》

一 列表簡介

列表可以包含任何種類的對象:數字,字符串,列表及字典等。與字符串不同的是列表爲‘可變序列’,支持在原處修改的操作。
python列表具有以下特性:

  1. 是任意對象的有序集合;
  2. 可通過偏移來對內部進行索引;
  3. 可變長度,異構以及任意嵌套;
  4. 屬於可變序列的分類;
  5. 對象引用數組

二 列表基本操作

列表的常用操作:
在這裏插入圖片描述

1 列表的創建

#可直接通過中括號的方式來創建一個列表
list1 = [1,2,3,4,5]
#也可利用list函數來將字符串轉化爲列表
strr = '1234'
list2 = list(strr)
print(list2)
#運行結果爲:['1', '2', '3', '4']

#列表內元素個數
print(len(list1))
#運行結果爲:5

列表的算數運算符操作:

list1 = [1,2,3,4,5]
list2 = [1,2,3]
list3= list1 + list2
print(list3)
#運行結果:[1, 2, 3, 4, 5, 1, 2, 3]
lst = ['hello']
print(lst * 4) # 列表中的元素累加,而不是列表個數的累加!
#運行結果:['hello', 'hello', 'hello', 'hello']

列表支持 + 及 * 運算但不支持 - 及 / 運算

2 列表迭代與解析

2.1 for 與 in

list1 = ['1', '2', '3', '4']
print('2' in list1) # in 返回布爾值 True or False
#運行結果爲:True

for number in list1:
	print(number,end = ' ')
#運行結果爲:1 2 3 4

2.2 列表解析

在後面將會以專門章節展開介紹,以下只做簡單介紹:

repeat = [word * 4 for word in '你好啊']
print(repeat)
#運行結果爲:['你你你你', '好好好好', '啊啊啊啊']

上述操作其實相等於創建了一個完整的for循環語句,代碼爲:

repeat = []  #先創建一個空列表
for word in '你好啊':
	repeat.append(word * 4) #append函數爲在列表內增加元素
print(repeat)
#運行結果爲:['你你你你', '好好好好', '啊啊啊啊']

3索引,分片和矩陣

列表與字符串都爲有序序列,故在索引和分片(也叫切片)操作上與字符串索引,分片操作基本相同。

foods = ['雞胸肉','鴨腿肉','豬肉','牛肉']
print(foods[0])  #與字符串一樣第一個元素位數爲0
#運行結果爲:雞胸肉

#其他切片操作可參考本系列博客的字符串學習內容
#注意列表中嵌套內容的索引
words = ['a','b',[1,2,3],'c']
print(words[2][0])
#運行結果:1

與字符串不同的是列表屬於可變序列,可直接對其進行索引後賦值(不用像字符串需要藉助利用變量才能進行更改操作)。如:

foods = ['雞胸肉','鴨腿肉','豬肉','牛肉']
foods[1] = '魚肉'
print(foods)
#運行結果爲:['雞胸肉', '魚肉', '豬肉', '牛肉']

對列表的多個元素值進行改變:

numbers = [1,2,3,4,5,6]
numbers[0:2] = [7,8]
print(numbers)
#運行結果:[7, 8, 3, 4, 5, 6]

注意列表切片賦值:切片個數不一定要等於賦值個數,如下面代碼所示:

matrix = [0,1,2,3,4,5]
matrix[0:2] = [6]
print(matrix)
#運行結果:[6, 2, 3, 4, 5]

列表切片賦值,可以理解爲先對列表進行刪除,然後在被刪除位置上開始插入。

所以也可用切片的方法來刪除列表中的元素:

matrix = [0,1,2,3,4,5]
matrix[0:2] = []
print(matrix)
#運行結果:[2, 3, 4, 5]

可以根據列表能進行嵌套的原理來形成簡單的矩陣:

matrix = [[1,2,3],
		  [4,5,6],
		  [7,8,9]]
print(matrix[1][1])
#運行結果:5

三 列表方法調用

1 append 方法

append方法,用於在列表末尾增加元素:

matrix = [0,1,2,3,4,5]
matrix.append(6)
print(matrix)
#運行結果:[0, 1, 2, 3, 4, 5, 6]

append方法也常被用來新建列表:

matrix = []
for number in range(0,6):
	matrix.append(number)
print(matrix)
#運行結果:[0, 1, 2, 3, 4, 5]

2 sort方法

sort函數用來對列表進行簡單的排序:

matrix = [5, 2, 6, 1, 3, 4]
matrix.sort()
print(matrix)
#運行結果:[1, 2, 3, 4, 5, 6]

注意list.sort()方法無返回值!!(嚴格的說返回值爲 None)

以下是其錯誤用法,請注意:

matrix = [5, 2, 6, 1, 3, 4]
print(matrix.sort())
#運行結果爲:None

也可對字符串等列表進行排序:

words = ['b', 'd', 'a', 'c', 'f', 'e']
words.sort()
print(words)
#運行結果:['a', 'b', 'c', 'd', 'e', 'f']

反向排序,利用內置參數 reverse = True 來實現:

words = ['b', 'd', 'a', 'c', 'f', 'e']
words.sort(reverse = True)
print(words)
#運行結果:['f', 'e', 'd', 'c', 'b', 'a']

3 extend方法

extend方法也是用來在列表末尾增加元素,但是要注意其與append用法的不同,append()方法括號內添加的可以是:數字,字符,變量,列表等,凡是extend()方法,添加的只能是列表,而且增加列表的方式也有所不同,如:

matrix = [0,1,2,3]
matrix.extend([4,5])
print(matrix)
#運行結果:[0, 1, 2, 3, 4, 5]

matrix = [0,1,2,3]
matrix.append([4,5])
print(matrix)
#運行結果:[0, 1, 2, 3, [4, 5]]

4 pop、remove、del方法

pop,remove,del方法都可以用來刪除列表中的元素,但是三者各有各的功效:

4.1 pop方法 刪除列表中的元素

matrix = [0,1,2,3,4,5,6]
matrix.pop()  #方法內部不傳入參數,則默認刪除最後一位
print(matrix)
#運行結果:[0, 1, 2, 3, 4, 5]

用來刪除指定位元素:

matrix = [1,2,3,4,5,6]
matrix.pop(1)  #刪除的是1位的元素!
print(matrix)
#運行結果:[1, 3, 4, 5, 6]

4.2 remove方法 刪除列表中的元素

remove 方法則是用來刪除指定元素,如:

matrix = [1,2,3,4,5,6]
matrix.remove(1)  #是刪除1,而不是1位的元素,remove方法內必須傳入參數
print(matrix)
#運行結果:[2, 3, 4, 5, 6]   #注意以上面代碼結果的不同之處

remove方法無返回值

matrix = [1,2,3,4,5,6]
number = matrix.remove(1)
print(number)
#運行結果:None

pop方法有返回值

matrix = [1,2,3,4,5,6]
number = matrix.pop(1)
print(number)
#運行結果:2

從上述實驗中可發現,pop與remove方法的不同之處有:
pop方法刪除列表特定位的元素(不輸入,則默認刪除最後一位)
remove方法刪除列表中特定元素
pop方法有返回值(之後可再次調用),remove無返回值

4.3 del 方法

matrix = [1,2,3,4,5,6]
del matrix[0]
print(matrix)
#運行結果:[2, 3, 4, 5, 6]

也可用來刪除列表內多個元素:

matrix = [1,2,3,4,5,6]
del matrix[0:3]
print(matrix)
#運行結果:[4, 5, 6]

5 insert 方法

在列表中插入元素:

matrix = [1,2,3,4,5,6]
matrix.insert(0,7)  #0爲插入點,7爲插入值
print(matrix)
#運行結果:[7, 1, 2, 3, 4, 5, 6]

6 index方法

index方法爲獲取列表中元素的位置:

matrix = [1,2,3,4,5,6]
print(matrix.index(4))
#運行結果:3

7 max函數

max函數可用來對列表取最大值操作,如:

matrix = [1,2,3,4,5,6]
print(max(matrix))
#運行結果爲:6

8 列表的複製

matrix = [1,2,3,4,5,6]
matrix_2 = matrix[:]
print(matrix_2)
#運行結果:[1, 2, 3, 4, 5, 6]

不要用下面這種方式來嘗試複製列表:

matrix = [1,2,3,4,5,6]
matrix_3 = matrix  #此種方式相當於將matrix和matrix_3兩個變量指向了同一個列表,而不是複製該列表。
matrix.pop()  #即如對該列表進行操作時,matrix_3也會改變
print(matrix_3)
#運行結果:[1, 2, 3, 4, 5]  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章