Python 基礎之 "組合資料型別" 列表
阿新 • • 發佈:2022-06-06
索引、序列的切片操作:
練習1:
s=len('helloworld') print(s) s='helloworld' for i in range(0,len(s)): print(i,s[i]) s='helloworld' s1=s[0:5:1] # [start:end:step] 開始,結束,步長,不包含end值,也就是5;不指定start,預設從0開始; print(s1)
序列的相關操作符與函式:
x in s 如果x是s的元素,結果為True,否則為False x not in s 如果x不是s的元素,結果為True,否則為False len(s) 序列中s中元素的個數(即序列長度) max(s) 序列中s中元素的最大值 min(s) 序列中s中元素的最小值 s.index(x) 序列中s中第一次出現的元素x的位置 s.count(x) 序列中s中元素x出現的總次數
列表:
lst=['hello','world',99.8,100] print(lst) 輸出:['hello', 'world', 99.8, 100] # 通過內建的list()函式建立列表: lst1=list(range(1,10,2)) print(lst1) 輸出:[1, 3, 5, 7, 9] lst2=list('helloworld') print(lst2) 輸出:['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
列表元素的遍歷:
for 與 range()函式和len()函式組合遍歷 for 與 enumerate()函式組合遍歷元素和索引
練習1:
lst=['hello','world'] for index,item in enumerate(lst): # 預設index序號從0開始 print(index,item) for index,item in enumerate(lst,1): # 預設index序號從1開始 print(index,item) #print(index,item,id(lst)) id 檢視記憶體地址
列表的相關操作:(列表中,實際儲存的是物件的記憶體地址):
lst.append(x) 在列表lst最後增加一個元素 lst.insert(index,x) 在列表中第index位置增加一個元素 lst.clear() 清除列表lst中所有元素 lst.pop(index) 將列表lst中第index位置的元素取出,並從列表中將其刪除 lst.remove(x) 將列表中lst中出現的第一個元素x刪除 lst.reverse() 將列表lst中的元素反轉 lst.copy() 拷貝列表lst中所有的元素,生成一個新的列表
列表排序:
1.列表物件的sort()方法
對原列表中的元素進行排序,列表中的元素順序發生改變
lst.sort(key=None,reverse=False)
練習:
# sort() 使用方法 lst=[1,57,6,7,10,77] print('原列表:',lst) lst.sort() # 預設是升序,另一種寫法:lst.sort(reverse=False) print(lst) lst.sort(reverse=True) # 降序 print(lst) # 忽略大小寫比較,如果有大小寫比較,大寫在小寫前面,因為大寫的ASCII是65位,小寫是96位 lst2=['Orange','apple','Bnanna','open','Fuck'] lst2.sort(key=str.lower) print(lst2)
2.內建的sorted()函式 :
使用sorted()函式後,原來元素順序不變,排序後產生一個新的列表物件
sorted(iterable,key=None,reverse=False)
練習:
# sorted()使用方法 # 預設升序 asc_list=sorted(lst) print('原列表升序:',asc_list) #降序 desc_list=sorted(lst,reverse=True) print('原列表降序:',desc_list) # 忽略大小寫 new_list=sorted(lst2,key=str.lower) print(new_list)
列表生成式
1.生成指定範圍的數值列表
lst=[expression for item in range] # expression 表示式
練習:
import random lst=[ item for item in range(1,11) ] # 第一個item 是表示式 print(lst) lst2=[random.randint(1,100) for _ in range(10)] # _ 表示for迴圈執行的次數 print(lst2) # 產生10個1-100之間的隨機數
2.從列表中選擇符合條件的元素組成新的列表
lst=[expression for item in 列表 if condition]
練習:
# 從列表中選擇符合條件的元素,組成新的列表 lst=[i for i in range(10) if i%2==0] # 0-9之間的偶數 print(lst) 二維列表 (外層迴圈是行,內層迴圈是列) # 建立二維列表 lst=[ ['城市','環比','增長'], ['北京',102,103], ['深圳',104,777], ['廣州',666,999] ] print(lst) # 遍歷列表內容,外層遍歷行,內層遍歷列 for row in lst: # 遍歷行 for item in row: # 遍歷列 print(item,end='\t') print() # 換行 -------------------------------------------------- # 列表生成4行5列 lst2=[[j for j in range(5)] for i in range(4)] print(lst2)