文章目錄
列表簡介
python列表使用[]表示,它實際上是一個數組,但是和一般數組不同的地方在於它內部封裝了很多很好用的方法(比如append,pop)以及一些特性(比如切片,不可變列表元組),下面來一層層揭開python列表的面紗。
列表crud操作
創建列表
使用[]創建列表並初始化列表
names = ['Jane', 'Peter', 'Bob', 'Tom', 'Kyo']
print(names)
輸出:
['Jane', 'Peter', 'Bob', 'Tom', 'Kyo']
訪問列表元素
1.通過索引訪問列表元素
print(names[0])
print(names[-1]) # 訪問最後一個元素
print(names[-2]) # 訪問倒數第二個元素
2.通過for循環遍歷列表
for name in names:
print(name)
3.判斷列表中是否存在某個元素
if 'peter' in names:
print('yes')
修改列表元素
print(names)
names[0] = 'Mike'
print(names)
輸出:
['Jane', 'Peter', 'Bob', 'Tom', 'Kyo']
['Mike', 'Peter', 'Bob', 'Tom', 'Kyo']
添加元素
1.通過append向列表末尾添加元素
names.append('Jimmy')
2.通過insert方法向指定位置添加元素
這種方法會導致該元素後的所有元素向後移動一位
names.insert(3, 'kate')
刪除元素
1.使用del刪除指定位置元素
del names[0]
2.使用pop刪除末尾元素
name = names.pop()
print(name)
3.使用pop彈出指定位置的元素
name = names.pop(3)
print(name)
4.根據值使用remove刪除元素
注意根據值刪除元素,如果存在多個相同的值,只會刪除第一個,如果想要全部刪除需要進行遍歷。
names.remove('kate')
#遍歷刪除元素
names = ['peter','jane','Bob','peter','david','jack']
for name in names:
if name == 'peter':
names.remove(name)
print(names)
輸出
['jane', 'Bob', 'david', 'jack']
列表排序
1.列表永久排序,使用sort默認按照首字母升序排序
print(names)
names.sort()
print(names)
輸出:
['Peter', 'Bob', 'Kyo']
['Bob', 'Kyo', 'Peter']
2.傳遞reverse=True參數,按照首字母降序排序
print(names)
names.sort(reverse=True)
print(names)
輸出:
['Bob', 'Kyo', 'Peter']
['Peter', 'Kyo', 'Bob']
3.使用sorted對列表臨時排序
print(names)
print(sorted(names, reverse=True))
print(names)
輸出:
['Peter', 'Kyo', 'Bob']
['Bob', 'Kyo', 'Peter']
['Peter', 'Kyo', 'Bob']
4.反轉列表
使用reverse()方法反轉列表,這個方法只反轉列表,不對列表做排序操作。
print(names)
names.reverse()
print(names)
輸出:
['Peter', 'Kyo', 'Bob']
['Bob', 'Kyo', 'Peter']
數值列表
使用range創建數值列表
1.注意使用range函數只包含起始值不包含末尾值
# 創建1~9的數組
data = range(1, 10)
2.創建數值列表時設置步長
# 創建[2,4,6,8]的列表
data = range(0, 10, 2)
3.結合range創建1~10平方數數值列表
squares = []
for value in range(1, 11, 2):
squares.append(value**2)
4.max求數值列表最大值
print(max(squares))
5.min求數值列表最小值
print(min(squares))
6.sum求數值列表和
print(sum(squares))
列表解析
使用列表解析實現一行代碼創建數值列表
squares = [value ** 2 for value in range(1, 11, 2)]
等價於
squares = []
for value in range(1, 11, 2):
squares.append(value**2)
切片
切片,即通過起始和結束索引來截取列表的一部分,使用切片的時候會包含起始值不包含末尾值。
1.輸出索引爲0,1的兩個元素
print(names[0:2])
2.輸出第一個到底倒數第三個元素
print(names[0:-2])
3.如果沒有指定起始索引,默認從0開始
print(names[:-2])
4.如果沒有指定末尾索引,默認切片爲起始索引到後面所有元素
print(names[0:])
5.輸出倒數第二個元素到最後一個元素
print(names[-2:])
6.通過切片的方式實現複製操作
names2 = names[:]
names2.append('sum')
print(names)
print(names2)
輸出:
['Bob', 'Kyo', 'Peter']
['Bob', 'Kyo', 'Peter', 'sum']
元組
元組是不可變的列表,在表現形式上和列表不同,列表使用[]來表示,元組使用()來表示。
tupleTest = (1, 3, 4)