python中list是一個序列(字符串和元組也是序列),有下標,可以切片,拼接等,list也是一個可變數據類型,即可以修改list的元素的值且list的內存地址不變。
一.list的定義和遍歷使用
list使用中括號[]來定義
numbers = ["one", "two", "three", "four", "five"] print(type(numbers)) print(numbers) 輸出結果如下 <class 'list'> ['one', 'two', 'three', 'four', 'five']
由<class 'list'>可看出numbers是一個list列表數據類型,有5個元素,可以直接print打印所有元素
遍歷list列表
list列表中可以存儲不同的數據類型
但是在開發中,list中通常用來存儲相同類型的數據,通過for遍歷就可以對每一個數據執行相同的操作
# 列表遍歷 for i in numbers: print(i, end=" ") print() for i, j in enumerate(numbers): print(i, j) 輸出結果如下 one two three four five 0 one 1 two 2 three 3 four 4 five
使用for in結構可以遍歷list列表中的每一個成員
enumerate()函數可以同時顯示元素在列表中的下標。
二.列表的切片和倒序
列表的切片和str字符串一樣,使用list[起始位置:結束位置]可以切取從其實位置下標開始到結束位置下標的前一個元素,起始位置和結束位置可以都不寫或寫一個
先看一下切片示例
numbers = ["one", "two", "three", "four", "five"] # 列表切片 print(numbers[1:2]) print(numbers[:3]) print(numbers[:]) print(numbers[::2]) print(numbers[1::-1]) print(numbers[::-2]) 輸出結果如下: ['two'] ['one', 'two', 'three'] ['one', 'two', 'three', 'four', 'five'] ['one', 'three', 'five'] ['two', 'one'] ['five', 'three', 'one']
列表的倒序
通過list本身的方法和切片實現
numbers = ["one", "two", "three", "four", "five"] # 列表倒序 print(numbers[::-1]) numbers.reverse() print(numbers) 輸出結果如下 ['five', 'four', 'three', 'two', 'one'] ['five', 'four', 'three', 'two', 'one']
三.list的常用操作
列表是可變數據類型,也就是說list中的元素值可以修改,修改后查看list的內存地址是不變的;字符串是不可變數據類型,雖然字符串變量的值也可以修改,但其實是在內存中重新開辟了一塊空間保存新的字符串,並將字符串變量指向新的地址,所以字符串修改后內存地址是改變的。
# 驗證字符串是可變數據類型
print(id(numbers)) # 打印numbers列表在解釋器中的內存地址 numbers.reverse() # 將列表反轉 print(numbers) # 反轉后打印列表成員 print(id(numbers)) # 再打印numbers列表在解釋器中的內存地址,和上一次未修改前比較相同,說明列表是可變數據類型 輸出結果如下 1863920966280 [4, 3, 2, 1] 1863920966280
由於list是可變數據類型,所以有添加,修改,刪除成員等操作
numbers = [1, 2, 3, 4] # list添加成員 numbers.append(5) # 添加成員5到列表最后 print(numbers) numbers.insert(1, 0) # 在列表下標為1的位置添加成員0 print(numbers) 輸出結果如下 [1, 2, 3, 4, 5] [1, 0, 2, 3, 4, 5]
numbers = [1, 2, 3, 4] # list刪除成員 del numbers[0] # 刪除下標0位置的元素,此時numbers = [2, 3, 4] numbers.remove(2) # 刪除元素2,此時numbers = [3, 4] numbers.pop(0) # 刪除下標0位置的元素,此時numbers = [4] print(numbers) # 打印numbers = [4] # del numbers # 把列表都刪掉了 輸出結果如下 [4]
numbers = [1, 2, 3, 4] # list 修改元素值 numbers[0] = "one" # 將下標0位置的元素重新賦值為"one" print(numbers) # 打印numbers = ["one", 2, 3, 4] 輸出結果如下 ['one', 2, 3, 4]
# 列表其他操作 numbers = [1, 2, 3, 4] # list 查詢成員 print(numbers[0]) # list元素個數 print(numbers.__len__()) print(len(numbers)) 輸出結果如下 1 4 4
四.小結
type 獲取數據類型
id 查看在解釋器中的內存地址
reverse() 列表反轉
append(e) 添加成員到列表尾部
insert(index, e) 在指定下標位置插入元素
remove(e) 刪除元素e
del e 刪除元素e
pop(index) 刪除指定下標位置的元素
len() 求列表的元素個數
__len__() 求列表的元素個數