(Python學習) 40. Python 常用內建資料結構部分總結-列表、元組、字典、集合
阿新 • • 發佈:2020-11-20
一、列表list
1. 列表的特徵
1. 列表中的每個元素都可變的,意味著可以對每個元素進行修改和刪除;
2. 列表是有序的,每個元素的位置是確定的,可以用索引去訪問每個元素;
3. 列表中的元素可以是Python中的任何物件;
4. 可以為任意物件就意味著元素可以是字串、整數、元組、也可以是 list 等Python中的物件。
2. 列表的資料操作
1. 直接建立列表
mylist = ['Google', 'Yahoo', 'Baidu']
2. 對列表中的指定位置進行修改
1 mylist = ['Google', 'Yahoo', 'Baidu'] #變更索引位置1Yahoo的內容為Microsoft2 mylist[1] = 'Microsoft' #執行結果: ['Google', 'Microsoft', 'Baidu']
3. 在列表後面追加元素
mylist.append('Alibaba')
4. 在指定位置插入元素
mylist.insert(1, 'Tencent')
5. 刪除元素
1 mylist = ['Google', 'Tencent', 'Microsoft', 'Baidu', 'Alibaba'] 2 mylist.pop() # 刪除尾部元素,會返回被刪除元素 3 mylist.pop(1) # 刪除索引為1的元素,並返回刪除的元素4 mylist.remove('Microsoft') #刪除列表中的Microsoft 5 del mylist[1:3] #刪除列表中索引位置1到位置 3 的資料
6. 替換元素
1 mylist[0] = 'Baidu' 2 mylist[1] = ['python', 'java', 'php'] # 列表的資料型別可以不同,也可以是列表
7. 列表排序
1 def comp(x,y): 2 return y-x 3 4 #sort 只能應用在列表list上,sort方法會在原list上直接進行排序,不會建立新的list 5 #sorted 可以對所有可迭代的物件進行排序的操作,sorted方法不會對原來的資料做任何改動,排序後的結果是新生成的6 7 myList= [1, 2, 5, 4] 8 myList.sort(key=cmp_to_key(lambda x,y:x-y)) # 按從小到大 9 myList=sorted(myList,key=cmp_to_key(lambda x,y: x-y)) # 按從小到大 10 myList.sort(key=cmp_to_key(comp)) # 按從大到小 11 myList=sorted(myList,key=cmp_to_key(comp)) # 按從大到小
8. 獲取列表長度
1 mylist = [1, 2, 5, 4] 2 len(mylist)
9. 獲取列表指定位置的資料
1 mylist = ['Google', 'Tencent', 'Microsoft', 'Baidu', 'Alibaba','Sina'] 2 mylist[1] #獲取索引位置1的資料 'Tencent' 3 mylist[1:5] #獲取索引位置1到5的資料,注意這裡只會取到索引位置4,這裡叫做取頭不取尾 'Tencent', 'Microsoft', 'Baidu', 'Alibaba' 4 mylist[ :5] #獲取從最頭到索引位置5的資料 'Google', 'Tencent', 'Microsoft', 'Baidu', 'Alibaba' 5 mylist[2:] #獲取從索引位置2開始到最後的資料 'Microsoft', 'Baidu', 'Alibaba','Sina'
10. 用迴圈來建立列表
1 a = [1,2,3,4,5,6] 2 b = [i*10 for i in a] #在a的資料基礎上每個資料乘以10生成一個列表b, 3 4 # [1, 2, 3, 4, 5, 6] 5 # [10, 20, 30, 40, 50, 60]
11. 過濾列表中的內容放入新的列表中
1 a = [x for x in range(1,20)] #生成一個從1到20的列表 2 b = [m for m in a if m % 2 == 0] #把a中所有偶數生成一個新的列表b 3 4 # 執行結果如下: 5 # b = [2, 4, 6, 8, 10, 12, 14, 16, 18]
12. 巢狀式生成列表
1 a = [i for i in range(1,4)] #生成一個列表a 2 b = [i for i in range(100,400) if i % 100 == 0] #生成一個列表b 3 c = [m+n for m in a for n in b] # 巢狀式 4 5 #執行結果: 6 # [1, 2, 3] 7 # [100, 200, 300] 8 # [101, 201, 301, 102, 202, 302, 103, 203, 303]
13. list函式:可以通過list將序列建立為列表。其實list為一種型別並非函式,但此處二者並無多大區別。下面的tuple、dict也是如此。
myList = list("Hello world") #myList=['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
二、元組tuple
注意:元組Tuple,用法與List類似,但Tuple一經初始化,就不能修改,沒有List中的append(), insert(), pop()等修改的方法,只能對元素進行查詢
a = ('a','b',['A','B']) print(type(a)) # 檢測a的資料型別是什麼 <class 'tuple'> print(a) # 列印內容 ('a', 'b', ['A', 'B']) a[2][0] = 'X' # 嘗試變更資料,成功了,為什麼? a[2][1] = 'y' print(a) # 打印出變更後的內容 ('a', 'b', ['X', 'y']) print(type(a[2])) # 檢測a[2]的資料型別是什麼 <class 'list'