Day 01——Task01:變量、運算符與數據類型
Day 02——Task02:條件與循環
Day 03——Task03:列表與元組(上)
Day 04——Task03:列表與元組(下)
Day 05——Task04:字符串與序列
Day 06——Task05:函數與Lambda表達式(上)
Day 07——Task05:函數與Lambda表達式(下)
Day 08——Task06:字典與集合
Day 09——Task07:文件與文件系統(上)
Day 10——Task07:文件與文件系統(下)
Day 11——Task08:異常處理
Day 12——Task09:else 與 with 語句
Day 13——Task10:類與對象(上)
Day 14——Task10:類與對象(下)
Day 15——Task11:魔法方法(上)
Day 16——Task11:魔法方法(下)
Day 17——Task12:模塊
在Python中,若將int整型、float浮點型、bool布爾型和str字符串單個數據,則可以將這些數據都放在一個容器裏得到一個 「容器類型」 的序列,比如:列表(List)、元組(Tuple)、字典(Dict)、集合(Set)。
Python有6個序列的內置類型,序列都可以進行的操作包括索引,切片,加,乘,檢查成員。
此外,Python已經內置確定序列的長度以及確定最大和最小的元素的方法。
1.列表List
- 列表是最常用的Python數據類型,它可以作爲一個方括號內的逗號分隔值出現。
- 列表的數據項不需要具有相同類型
- 創建一個列表,只要把逗號分隔的不同的數據項使用方括號括起來即可。如下所示:
list1 = ['Mive','-Vax', 5, 3];
list2 = [1, 2, 3, 4, 5 ];
list3 = ['Mive','-Vax', [3, 5]];
與字符串的索引一樣,列表索引從0開始。列表可以進行截取、組合等。
1.1訪問列表中的值
使用下標索引來訪問列表中的值,同樣你也可以使用方括號的形式截取字符,如下所示:
list1 = ['Mive','-Vax', 5, 3]
sample = [1, 2, 3, 4, 5, 6, 7, 8, 9 ]
print ("list1[0]: ", list1[0])
print ("sample[3:5]: ", sample[3:5])
print ("sample[-5:-3]: ", sample[-5:-3])
# list1[0]: Mive
# sample[3:5]: [4, 5]
# sample[-5:-3]: [5, 6]
1.2向列表添加元素
1.2.1通過 list.append(obj)方法
append(obj) 在列表末尾添加新對象,只接受一個參數,參數可以是任何數據類型,被追加的元素在 list 中保持着原結構類型。
list1 = ['Mive','-Vax', 5]
list1.append('3')
print ("更新後的列表 : ", list1)
# 更新後的列表 : ['Mive', '-Vax', 5, '3']
注意:append()方法與 + 連接操作符還是存在差異的。 + 連接操作符兩端的類型需要一致。
list1 = ['Mive','-Vax', 5]
list2 = 3
list1.append(list2)
print ("更新後的列表 : ", list1)
# 更新後的列表 : ['Mive', '-Vax', 5, 3]
list1 = ['Mive','-Vax', 5]
list2 = 3
list1 += list2
print ("更新後的列表 : ", list1)
# TypeError: 'int' object is not iterable
1.2.2通過list.extend(seq)方法
extend(seq) 方法用於在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)。
list1 = ['Mive','-Vax']
list1.extend([5,'3'])
print ("更新後的列表 : ", list1)
# 更新後的列表 : ['Mive', '-Vax', 5, '3']
1.2.3通過list.insert(index, obj))方法
insert(index, obj))方法用於將指定對象obj插入列表的指定位置index。
list1 = ['Mive', 5, 3]
list1.insert(1, '-Vax')
print ("更新後的列表 : ", list1)
# 更新後的列表 : ['Mive', '-Vax', 5, 3]
1.3修改列表中的值
直接通過下標索引來修改列表中的值
list1 = ['Mive', '-Vax', 5, 3]
print ("列表:", list1)
list1[2] = 8
print ("更新後的列表:", list1)
# 列表: ['Mive', '-Vax', 5, 3]
# 更新後的列表: ['Mive', '-Vax', 8, 3]
1.4刪除列表中的值
1.4.1通過 list.remove(obj) 方法
不需要知道參數的索引值,只需要知道參數的值既可完成刪除
list1 = ['Mive', '-Vax', 5, 3]
print ("列表:", list1)
list1.remove('Mive')
print ("更新後的列表:", list1)
# 列表: ['Mive', '-Vax', 5, 3]
# 更新後的列表: ['-Vax', 5, 3]
注意:若刪除list中不存在的值,則會報錯。
1.4.2通過 del 語句
可以使用 del 語句來刪除列表的一個或多個元素
list1 = ['Mive', '-Vax', 5, 3]
del list1[1], list[2]
print (list1)
# ['Mive', 3]
也可以使用 del 語句來刪除列表
list1 = ['Mive', '-Vax', 5, 3]
del list1
print (list1)
# NameError: name 'list1' is not defined
1.4.3通過 list.pop([index=-1]) 語句
因爲Python中的List是利用stack棧這種數據結構進行存儲的,所以可以使用pop彈棧彈出元素,故存在返回值。
list1 = ['Mive', '-Vax', 5, 3]
num = list1.pop()
print (list1,num)
# ['Mive', '-Vax', 5] 3
list1 = ['Mive', '-Vax', 5, 3]
list1.pop(1)
print (list1)
# ['Mive', 5, 3]
1.5列表分片與拼接
1.5.1列表分片
Python的列表截取與字符串操作類型爲list[start : stop : step]
意爲索引下標從start開始到stop - 1步長爲step,複製出一個新的列表。
list1 = ['Mive', '-Vax', 5, 3,'Mive1', '-Vax1', 51, 31]
print(linst[1:5]) # ['-Vax', 5, 3, 'Mive1']
print(linst[1:]) # ['-Vax', 5, 3, 'Mive1', '-Vax1', 51, 31]
print(linst[:5]) # ['Mive', '-Vax', 5, 3, 'Mive1']
print(linst[:]) # ['Mive', '-Vax', 5, 3, 'Mive1', '-Vax1', 51, 31]
print(linst[1:7:2]) # ['-Vax', 3, '-Vax1']
print(linst[::-1]) #[31, 51, '-Vax1', 'Mive1', 3, 5, '-Vax', 'Mive']
注意:若令step = -1,相當於將列表翻轉。
1.5.2列表拼接
列表拼接有兩種方式,用 ’ + ’ 連接操作符和 ’ * ’ 重複操作符 ,前者首尾拼接,後者複製拼接。
list1 = ['Mive', '-Vax', 5, 3]
list2 = ['Mive1', '-Vax1', 51, 31]
print(list1 + list2) # ['Mive', '-Vax', 5, 3, 'Mive1', '-Vax1', 51, 31]
print(list1 * 3) # ['Mive', '-Vax', 5, 3, 'Mive', '-Vax', 5, 3, 'Mive', '-Vax', 5, 3]
1.5.3嵌套列表
使用嵌套列表即在列表裏創建其它列表,例如:
list1 = ['Mive', '-Vax', 5, 3]
list2 = ['Mive1', '-Vax1', 51, 31]
list3 = [list1, list2]
print(list3) # [['Mive', '-Vax', 5, 3], ['Mive1', '-Vax1', 51, 31]]
print(list3 [1]) # ['Mive1', '-Vax1', 51, 31]
print(list3 [0][1]) # -Vax
1.6列表的常用操作符
1.6.1比較操作符
即>
、>=
、<
、<=
、==
、!=
list0 = [5, 3]
list1 = [5, 31]
list2 = [51, 3]
print(list0 > list2) # False
print(list0 > list1) # False
print(list1 > list2) # False
1.6.2邏輯操作符
即and
、or
、not
list0 = [5, 3]
list1 = [5, 31]
list2 = [51, 3]
print(list0 > list2 and list0 > list1) # False
print(list0 > list2 or list0 > list1) # False
print(not(list1 > list2)) # True
1.6.3成員關係操作符
即in
、not in
list1 = ['Mive', '-Vax', 5, 3]
print(5 in list1) # True
print(51 not in list1) # True
1.7列表的一些其他函數&方法
1.7.1列表函數
1.7.1.1 len(list) 函數
len(list)
函數返回列表元素個數。
list1 = ['Mive', '-Vax', 5, 3]
print (len(list1)) # 4
list2=list(range(5))
print (list2, len(list2)) # [0, 1, 2, 3, 4] 5
1.7.1.2 max(list) 函數
max(list)
函數返回列表元素最大值
list1 = ['Mive', '-Vax', '5', '3']
list2=list(range(5))
print ("list1 最大元素值 : ", max(list1))
print ("list2 最大元素值 : ", max(list2))
# list1 最大元素值 : Mive
# list2 最大元素值 : 4
1.7.1.3 min(list) 函數
min(list)
函數返回列表元素最小值
list1 = ['Mive', '-Vax', '5', '3']
list2=list(range(5))
print ("list1 最小元素值 : ", min(list1))
print ("list2 最小元素值 : ", min(list2))
# list1 最小元素值 : -Vax
# list2 最小元素值 : 0
1.7.1.4 list(seq)函數
將元組轉換爲列表
tuple1 = ('Mive', '-Vax', '5', '3')
print (tuple1, type(tuple1))
list1=list(tuple1)
print (list1, type(list1))
# ('Mive', '-Vax', '5', '3') <class 'tuple'>
# ['Mive', '-Vax', '5', '3'] <class 'list'>
1.7.2列表的一些其他方法
1.7.2.1 count(obj)方法
count(obj)方法
用於統計某個元素在列表中出現的次數。
list1 = ['Mive', '-Vax', '5', 3]
list1 *= 8
print ("3 元素個數 : ", list1.count(3))
# 3 元素個數 : 8
1.7.2.2 reverse()方法
reverse()
方法用於反向列表中元素。
list1 = ['Mive', '-Vax', '5', 3]
list1.reverse()
print (list1)
# [3, '5', '-Vax', 'Mive']
print (list1[::-1])
# ['Mive', '-Vax', '5', 3]
1.7.2.3 sort()方法
sort()
函數用於對原列表進行排序,如果指定參數,則使用比較函數指定的比較函數。
list.sort( key=None, reverse=False)
key
— 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素來進行排序。reverse
— 排序規則,reverse = True 降序, reverse = False 升序(默認)。
list1 = ['b', 'a', 'd', 'c', 'e']
list1.sort()
print ( '升序輸出:', list1 )
list1.sort(reverse=True)
print ( '降序輸出:', list1 )
# 升序輸出: ['a', 'b', 'c', 'd', 'e']
# 降序輸出: ['e', 'd', 'c', 'b', 'a']
def takeSecond(list1):
return list1[1]
list1 = [[0,5],[2,2],[7,3],[5,4],[1,8]]
list1.sort(key=takeSecond)
print('排序列表:', list1)
# 排序列表: [[2, 2], [7, 3], [5, 4], [0, 5], [1, 8]]
1.7.2.4 clear()方法
clear()
方法用於清空列表,類似於 del list[:]
。
list1 = ['Mive', '-Vax', '5', 3]
list1.clear()
print("列表清空後 : " , list1)
# 列表清空後 : []
1.7.2.5 copy()方法
copy()
方法用於複製列表,類似於 list[:]
。
list1 = ['Mive', '-Vax', '5', 3]
list2 = list1.copy()
print ("list2 列表: ", list2)
# list2 列表: ['Mive', '-Vax', '5', 3]