一.列表 1.列表的定義及格式: 列表是個有序的,可修改的,元素用逗號隔開,用中括弧包圍的序列。 格式:變數名 = [ 元素1,元素2,元素3...] 作用:存儲多個數據 列表推導式:重點 2.列表的索引: 通過索引獲取表中的書記,索引從0開始 註意:不要索引越界 s = [ 'hello',a,b ...
一.列表
=====================================================
1.列表的定義及格式:
列表是個有序的,可修改的,元素用逗號隔開,用中括弧包圍的序列。
格式:變數名 = [ 元素1,元素2,元素3...]
作用:存儲多個數據
列表推導式:重點
1 '''列表推導式''' 2 list_t = [i for i in range(10)] 3 print(list_t) # [0,1,2,3,4,5,6,7,8,9] 4 5 '''實例''' 6 print('實例:') 7 for i in range(101): 8 if i % 2 == 0: 9 print(i) 10 11 print("等同於實例") 12 listDouble = [i for i in range(101) if i % 2 == 0] 13 print(listDouble)
2.列表的索引:
通過索引獲取表中的書記,索引從0開始
註意:不要索引越界
s = [ 'hello',a,b,c ]
print(s[1])
輸出結果:a
用for迴圈遍歷列表:
name = [ 'zs','ls','ww' ]
for i in name:
print( i )
輸出結果:zs
ls
ww
3.列表的添加:append(), insert(), extend() 方法。
1 # append 2 lst = ['悟空','八戒','唐僧'] 3 4 lst.append('白骨精') # append 向列表末尾增加指定元素 5 6 print(lst) 7 8 # 輸出結果: ['悟空', '八戒', '唐僧', '白骨精'] 9 10 ------------------------------------------------------------------------------------------- 11 # insert 12 lst = ['悟空','八戒','唐僧'] 13 14 lst.insert(1,'白骨精') # insert 往列表制定位置添加制定元素,負索引倒敘插入。超過索引插入末尾 15 16 print(lst) 17 18 # 輸出結果: ['悟空', '白骨精', '八戒', '唐僧'] 19 ------------------------------------------------------------------------------------------ 20 #extend 21 22 lst = ['悟空','八戒','唐僧'] 23 24 lst1 = ['悟空','八戒','唐僧','悟空'] 25 26 lst.extend(lst1) # 將一個列表中的元素添加到另一個列表的尾部合併,不會去重。 27 28 print(lst) 29 30 # 輸出結果: ['悟空', '八戒', '唐僧', '悟空', '八戒', '唐僧', '悟空']
4.列表的刪除:pop(),remove(),clear(),del 方法。
1 # pop 刪除指定索引位上的元素,預設刪除-1的數據 2 3 lst = ['悟空','八戒','唐僧'] 4 5 lst.pop(1) 6 7 print(lst) 8 9 輸出結果:['悟空', '唐僧'] 10 11 lst = ['悟空','八戒','唐僧'] 12 13 lst.pop() 14 15 print(lst) 16 17 輸出結果:['悟空', '八戒'] 18 ----------------------------------------------------------------------------------------- 19 # remove 從左往右刪除指定的元素, 20 21 lst = ['悟空','八戒','唐僧'] 22 23 lst.remove('八戒') 24 25 print(lst) 26 27 # 輸出結果:['悟空', '唐僧'] 28 ----------------------------------------------------------------------------------------- 29 # clear 清空列表中所有的元素,返回一個空列表 30 31 lst = ['悟空', '八戒', '唐僧'] 32 33 34 35 lst.clear() 36 37 38 39 print(lst) 40 41 輸出結果:[ ] 42 ----------------------------------------------------------------------------------------- 43 # del 刪除整個列表或列表的數據,del是python內置功能,不是列表獨有的 44 45 46 lst = ['悟空', '八戒', '唐僧'] 47 48 del lst 49 50 print(lst) 51 52 輸出結果:NameError: name 'lst' is not defined (報錯)因為不存在,所有報錯
=============================
del 還能指定刪除某位置的數據
=============================
1 newL = [5, 8, 6, 5, 74, 5, 5, 46, 1] 2 del newL[8] # # 刪除指定索引值為8的數據,這裡刪除最後一個數據1 3 print(newL) # [5, 8, 6, 5, 74, 5, 5, 46]
5.列表的查詢:count(),index() 方法。
1 # count 返回指定元素在列表的個數 2 3 lst = ['hello','world','hello','python'] 4 5 print(lst.count('hello')) # 輸出2
1 lst = ['悟空', '八戒', '唐僧', '悟空'] 2 num1 = lst.index('悟空') # index 查看指定數據在列表的索引位置 3 print("悟空在", num1) # 這裡輸出0
6.列表的修改:直接修改,方式如下:list[要修改的數據的索引值]=新的數據
1 lst = ['悟空', '八戒', '唐僧'] 2 3 lst[0] = '白龍馬' # 將列表第一位數值為替換為‘白龍馬’ 4 5 print(lst) 6 7 輸出結果:['白龍馬', '八戒', '唐僧']
7.列表的切片:
1 '''列表的切片''' 2 listCut = [i for i in range(20) if i % 2 != 0] # 生成0-20所有單數的列表 3 print("例子列表", listCut) # 輸出:例子列表 [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] 4 # 輸出:例子列表 [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] 5 print(listCut[0: 6]) # 0到5左邊開始索引的數據 左閉右開(左邊0是包含索引值,右邊6是6之前的索引值) 6 # 輸出[1, 3, 5, 7, 9, 11] 7 print(listCut[::2]) # 每隔2個數字取一個值 8 # 輸出[1, 5, 9, 13, 17] 9 print(listCut[::-1]) # 逆序/反序排序 等同於List.reverse() 10 # 輸出[19, 17, 15, 13, 11, 9, 7, 5, 3, 1] 11 print(listCut[-4:]) # 取後四位,負數是右邊開始取 12 # 輸出[13, 15, 17, 19] 13 print(listCut[-4:-1]) # 右邊開始取,取後4位到後2位值,左閉右閉,(-4包括,-1包括) 14 # 輸出[13, 15, 17]
8.列表的排序和翻轉:sort(),reverse() 方法。
1 sort() 按照ascii碼表順序進行排序 2 3 lst = ['tom', 'james', 'jerry', 'zs', 'ls'] 4 5 lst.sort() 6 7 print(lst) # 從小到大排序 8 9 輸出結果:['james', 'jerry', 'ls', 'tom', 'zs'] 10 11 12 lst.sort(reverse=True) # 有大到小排序 13 14 15 print(lst) 16 17 輸出結果:['zs', 'tom', 'ls', 'jerry', 'james'] 18 ------------------------------------------------------------------------------------ 19 reverse() 將列表翻轉(逆序) 20 21 lst = ['tom', 'james', 'jerry', 'zs', 'ls'] 22 23 lst.reverse() 24 25 print(lst) 26 27 輸出結果:['ls', 'zs', 'jerry', 'james', 'tom']
9.列表的拷貝:copy()方法。
1 淺拷貝: 2 3 lst1 = ['西施','貂蟬',['悟空','八戒'] 4 5 lst2 = lst1.copy() #將lst1 的內容拷貝一份給lst2, 兩者的id 不一樣 6 7 print(lst2) 8 9 lst2[0] = '楊貴妃' #lst2 中的西施改成楊貴妃 10 11 print(lst2) 12 13 輸出結果:['西施', '貂蟬', ['悟空', '八戒'] 14 ['楊貴妃', '貂蟬', ['悟空', '八戒'] 15 16 ------------------------------------------------------------------------------------ 17 18 深拷貝: 19 20 import copy 21 22 lst1 = ['西施','貂蟬',['悟空','八戒'] 23 24 lst2 = copy.deepcopy(lst1) 25 26 print(lst2) 27 28 lst2[0] = '楊貴妃' 29 30 print(lst2) 31 32 輸出結果:['西施', '貂蟬', ['悟空', '八戒'] 33 ['楊貴妃', '貂蟬', ['悟空', '八戒']
二.元祖
=====================================================
1.元組的定義及特點:
定義:
通過()來定義:變數名=(1,2,3,4,) 。以逗號分割的,以小括弧包圍的序列。
通過tuple函數定義: lst=[1,2,3,4] 變數名=tuple(lst)
特點:
元組是有序的,不能更改的,由於元組不可變 ,所以遍歷元組要比列表快。
2.元組的訪問:
通過索引,預設從0開始
1 通過索引,預設從0開始 2 3 tup = (1,2.2,True,'hello') # 獲得2.2的值,一定要註意索引越界的問題 4 5 6 print(tup[1]) 7 8 # 輸出結果:2.2 9 ------------------------------------------------------------------------------------------- 10 通過切片: 11 12 tup = (1,2.2,True,'hello') 13 14 print(tup[0:4:2]) 15 16 # 輸出結果:(1,True) 17 ----------------------------------------------------------------------------------------- 18 訪問多維元組: 19 20 tup = (('zs',10),('ls',11),('ww',12)) 21 22 print(tup[1][0]) 23 24 # 輸出結果:ls
3.使用多個變數來接受元組的值:
1 tup = (('zs',10),('ls',11),('ww',12)) 2 3 name,age,height,weight = ('zs',18,1.64,150) 4 5 print(name) 6 7 print(age) 8 9 print(height) 10 11 print(weight) 12 13 for name, age in tup: #for 迴圈遍歷多重元組,註意變數的數目一致性 14 15 print(name,age) 16 17 18 19 輸出結果: zs 20 18 21 1.64 22 150 23 zs 10 24 ls 11 25 ww 12
4.元組的方法:index(),count(),len() 方法。
1 tup = ('a','b','c','c','b','a','x') 2 3 4 5 print(tup.index('b')) # index() 獲取數據在元組的索引值 6 7 8 9 print(tup.index('a',2,len(tup))) # len()獲取元組的長度值 10 11 12 13 print(tup.count('a')) # count() 獲取數據在元組的總個數 14 15 16 17 18 輸出結果: 1 19 20 5 21 22 2
5.一個逗號的魅力:
1 tup = (1,) 2 3 print(tup) # 輸出結果(1,) 4 5 tup1 = (1) 6 7 print(tup1) # 輸出結果 1
三.字典
=====================================================
1.字典的定義及格式:
定義:字典是一個無序的,可以修改的,元素呈鍵對值的形式,以逗號分隔,大括弧包圍的序列。
格式:變數名={key:value,key:value}
註意:字典中的key是不可變的類型,value是可變類型的
定義如下:
1 # 字典是無序的數據集合 2 # 鍵(key)值(value)對 3 # 鍵只能使用字元串,元組 ,數字(不可變),值可以是任何的數據類型 4 tony = { 5 "name": "TONY", 6 "age": 27, 7 "height": 1.73, 8 "weight": 55, 9 6: (6,), 10 (7,): () 11 } 12 print(tony) 13 # 輸出為:{'name': 'TONY', 'age': 27, 'height': 1.73, 'weight': 55, 6: (6,), (7,): ()}
取值如下:
1 tony_dic = {"name": 'tony', "height": 1.73, (6,): (7,)} 2 # 字典的取值 3 print(tony_dic["name"]) # 輸出tony 4 print(tony_dic[(6,)]) # 輸出(7,)
2. 字典的增加:setdefault() 方法。
1 # setdefault()鍵存在就不添加,不存在就添加預設的值。 2 3 dic = {'name': 'zs', 'age': 10, 'height': 1.75} 4 5 dic.setdefault('weight', 170) # 鍵存在就不添加,不存在就添加預設的值。 6 7 print(dic) 8 9 dic.setdefault('weight', 180) 10 11 print(dic) 12 13 輸出結果:{'name': 'zs', 'age': 10, 'height': 1.75, 'weight': 170} 14 15 {'name': 'zs', 'age': 10, 'height': 1.75, 'weight': 170} 16 17 --------------------------------------------------------------------------------------- 18 dic = {'name': 'zs', 'age': 10, 'height': 1.75} 19 20 dic['name'] = 'ww' # 根據key鍵來設置值,如果key存在就直接覆蓋原有的值 21 22 print(dic) 23 24 輸出結果: {'name': 'ww', 'age': 10, 'height': 1.75}
3.字典的刪除:pop(),popitem(),clear(),del 方法。
1 pop() 2 3 dic = {'name': 'zs', 'age': 10, 'height': 1.75} 4 5 dic.pop('name') # 根據鍵刪除值 6 7 print(dic) 8 9 輸出結果: {'age': 10, 'height': 1.75} 10 ------------------------------------------------------------------------------------------ 11 popitem() 12 13 dic = {'name': 'zs', 'age': 10, 'height': 1.75} 14 15 dic.popitem() # 隨機刪除一個鍵值對 16 17 print(dic) 18 19 20 輸出結果:{'name': 'zs', 'age': 10} 21 22 ----------------------------------------------------------------------------------------- 23 clear() 24 25 dic = {'name': 'zs', 'age': 10, 'height': 1.75} 26 27 dic.clear() # 清空字典里所有的鍵值對 28 29 print(dic) 30 31 32 輸出內容:{} # 字典還是存在的,只是沒有數據,所有輸出空字典。 33 ======================================= 34 35 del dic # 字典刪除 36 37 print(dic) # 字典刪除了,所有輸出會報錯,找不到字典 38 39 輸出結果:NameError: name 'dic' is not defined (報錯)
4.字典的修改:使用鍵修改或者update()方法。
1 # 使用key修改: 2 3 dic = {'name':'zs','age':10,'height':1.78} 4 5 dic['name'] = '張三' 6 7 print(dic) 8 9 10 輸出結果: {'name':'張三','age':10,'height':1.78} 11 12 --------------------------------------------------------------------------------------- 13 14 update() 按照字典的格式更新鍵的內容,若果字典不存在這個鍵,就創建這個鍵和值 15 16 dic = {'name': 'zs', 'age': 10, 'height': 1.78} 17 18 dic1 = {'name':'張三','weight':152} 19 20 dic.update(dic1) 21 22 print(dic) 23 24 25 輸出結果:{'name': '張三', 'age': 10, 'height': 1.78, 'weight': 152}
5.字典的查找:get(),keys(),values(),items(),len()方法。
1 c = {'name': 'zs', 'age': 10, 'height': 1.78} 2 3 print(dic.get('name')) # get()根據鍵來獲取相應的值,如果鍵不存在,預設返回None 4 5 print(dic.keys()) # 返回一個包含字典所有key的列表 6 7 print(dic.values()) # 返回一個包含字典所有value的列表 8 9 print(dic.items()) # 返回字典鍵值,返回呈元組的形式 10 11 print(len(dic)) # 測量字典鍵值對的個數,註意是鍵值對。 12 13