內容簡述:
- 1、列表
- 2、元組
1、列表
列表、元組和字串因為成員有序,可以通過下標訪問,又稱為「序列」。列表有序,內容長度可變,使用中括號[]表示,元素間用逗號分隔,元素的資料型別可以不一樣!列表的相關的操作有:「元素訪問,切片,修改,追加,插入,刪除,擴充套件,統計,排序,下標獲取,拷貝」
① 列表建立
直接把元素放在中括號[]中,用逗號進行分隔,比如:
data_list = [1,2,0,"a",True]
複製程式碼
② 訪問列表元素
列表是有序的,可以通過「下標索引」來訪問列表中的元素,可以從左開始索引,也可以從右開始索引。從左開始索引的下標範圍:[0, 列表長度-1],從右開始索引的下標範圍:[-1, 列表長度],如果索引下標不在範圍裡的話,會報陣列越界錯誤!程式碼示例如下:
num_list = [1,2,3,4,5]
print(num_list[0])
print(num_list[-3])
print(num_list[5])
複製程式碼
執行結果如下:
1
3
IndexError: list index out of range
複製程式碼
③ 列表切片
通過索引的方式只能獲取一個元素,如果想獲取多個元素呢?只能通過多個下標先獲取多個元素
再另外拼接一個列表麼?當然不用,Python為我們提供了強大的「切片操作」。通過「:(冒號)」分割前後索引來實現,要注意索引的邊界是顧頭不顧尾,比如a[1:3],包含的是a[1],a[2],不包含a[3]!詳細用法示例如下:
num_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 擷取[0,2)間的資料,輸出結果:[0, 1]
print(num_list[0:2])
# 擷取[1,9],輸出結果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num_list[1:])
# 擷取[0,7],輸出結果:[0, 1, 2, 3, 4, 5, 6, 7]
print(num_list[:-2])
# 擷取所有元素,輸出結果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num_list[:])
# 擷取[0,10)的元素,步長為2,輸出結果:[0, 2, 4, 6, 8]
print(num_list[0:10:2])
# 擷取[2,10)的元素,步長為3,輸出結果:[2, 5, 8]
print(num_list[2::3])
複製程式碼
④ 更新、追加、插入列表元素
更新 列表元素 直接通過下標索引獲得對應元素進行修改
即可,比如上面的num_list,修改第二個元素的值只需:num_list[1] = 'xxx'
,另外,如果你不知道修改的元素下標索引是哪一個,但是你知道元素的值,可以先通過 index("元素的值")
找到對應的下標索引值,再去修改元素的值。
追加列表元素可以通過 append函式
在列表的表位追加一個元素,比如num_list呼叫append(10)後,追加後列表裡的元素就變成了 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10]。append函式只是在隊尾插入一個元素,如果想插入到特定位置則需要使用insert函式
了。引數有兩個,插入的下標位置(從0開始)
和 插入元素值
。比如num_list呼叫insert(3, 2.5)後的列表:[0, 1, 2, 2.5, 3, 4, 5, 6, 7, 8, 9, 10]
⑤ 刪除列表元素
刪除這裡要分清楚是「想刪除整個列表」還是「刪除列表裡某個元素」,程式碼示例如下:
num_list = [0, 1, 2, 3, 4, 5]
# remove()直接對列表中的元素進行檢索刪除,根據值不是下標,返回刪除後的列表
num_list.remove(2)
print(num_list)
# del()根據下標進行檢索刪除,不返回刪除值
del num_list[2]
print(num_list)
# pop()根據下標進行檢索刪除,不填下標預設刪除最後一項,返回刪除值
num_list.pop()
print(num_list)
# 刪除列表引用
del num_list
print(num_list)
複製程式碼
執行結果如下:
[0, 1, 3, 4, 5]
[0, 1, 4, 5]
[0, 1, 4]
NameError: name 'num_list' is not defined
複製程式碼
⑥ 列表遍歷
可以通過迴圈對列表進行遍歷,遍歷的方式有多種,程式碼示例如下:
num_list = [0, 1, 2, 3, 4, 5]
for num in num_list:
print(num, end='\t')
for index in range(0, len(num_list)):
print(num_list[index], end='\t')
for index, value in enumerate(num_list):
print('index = %d values = %d' % (index, value))
複製程式碼
複製程式碼
執行結果如下:
0 1 2 3 4 5
0 1 2 3 4 5
index = 0 values = 0
index = 1 values = 1
index = 2 values = 2
index = 3 values = 3
index = 4 values = 4
index = 5 values = 5
複製程式碼
⑦ 列表的其他操作
除了上面的這些常用操作外,還有一些其他的操作,使用程式碼示例如下:
a_list = [1, 2.0, 'a', True]
b_list = [3, 2, 9, 4, 11]
# 列表指令碼操作符:可以使用+號組合列表,*號重複列表
print(a_list + a_list)
print(a_list * 2)
# 判斷元素是否在列表中
print('a' in a_list)
# 獲得列表長度
print('列表長度:%d' % len(a_list))
# 統計元素在列表中出現的次數,True的值也是1
print('列表中1出現的次數 %d' % a_list.count(1))
# 統計最大值,最小值,列表元素型別需要為數字
print('列表中的最大值 %d' % max(b_list))
print('列表中的最小值 %d' % min(b_list))
# 排序,本地排序(會修改值),返回None,只能比較數字!預設從小到大,
# 從大到小可以用可選引數,括號里加上key = lambda x:-1*x
b_list.sort()
print('升序排列:%s' % b_list)
b_list.sort(key=lambda x: -1 * x)
print('降序排列:%s' % b_list)
# 列表元素反轉,會修改列表,返回None
a_list.reverse()
print('反轉後的列表:%s' % a_list)
# extend()函式,在列表末尾一次性追加另一個列表中的多個值
a_list.extend(b_list)
print("追加後的列表:",a_list)
複製程式碼
執行結果如下:
[1, 2.0, 'a', True, 1, 2.0, 'a', True]
[1, 2.0, 'a', True, 1, 2.0, 'a', True]
True
列表長度:4
列表中1出現的次數 2
列表中的最大值 11
列表中的最小值 2
升序排列:[2, 3, 4, 9, 11]
降序排列:[11, 9, 4, 3, 2]
反轉後的列表:[True, 'a', 2.0, 1]
追加後的列表: [True, 'a', 2.0, 1, 11, 9, 4, 3, 2]
複製程式碼
4、元組(Tuple)
元組,「受限的列表」,元組中的元素不能修改,使用
()小括號
表示。如果元組中只有一個元素,需要在元素後新增逗號,比如(1,),否則會被當做括號運算子使用!!!比起列表,元組佔用更少的記憶體,常會用作不能修改的引數傳遞給函式。除了沒有修改元素的函式外,其他的函式和列表基本一致,還提供了一個tuple()函式
用於:將字串和列表轉換為元組。
另外還有一點要注意:
如果在新建變數的時候,沒有小括號包裹,只用逗號分隔,Python也會把這個變數認做元組,比如:a = 1,2,3,4,如果此時呼叫print(type(a)),輸出的結果會是:
<class 'tuple'>
。
如果本文對你有所幫助,歡迎
留言,點贊,轉發
素質三連,謝謝?~