Python基礎篇—序列
阿新 • • 發佈:2021-11-30
序列
-
用於存放多個值的連續的記憶體空間,並且按一定的順序排列,每一個位置分配一個數字,稱為索引或位置
1、索引
- 左邊開始的索引從0開始,右邊開始的索引從-1開始
2、切片
-
s[序列開始位置:序列結束位置(不包括該位置):步長(預設為1)]
-
s[st:ed]//s[st-ed)
3、序列相加
- ‘+’實現兩個序列拼接,只能拼接;兩個相同型別的東西
4、乘法
-
可以實現序列重複拼接
-
建立序列時可以指定長度
list=[None]*2//[None,None],None表示什麼都沒有
5、檢查某個元素是否在序列中
value (not) in sequence// Ture,False
6、序列的內建函式
//不會改變原序列,函式返回一個新的值,定義一個(字元/序列)型別去接收即可。 len(s),max(s),min(s) list(s)//序列轉換為列表 str(s)//序列轉換為字串 sum(s)//計算元素和 sorted(s)//排序 reversed(s)//反向序列中的元素 /* s=[],s.reverse(),print(s),s原序列改變 s=[],s1=reversed(s),s1是一個生成器物件,通過for迴圈訪問,或者轉換為list,tuple等型別。 */ enumerate(s)//將序列組合為一個索引序列,多用在for迴圈中
一、列表
-
可變序列,列表中的元素可以是整數,實數、字串、列表、元組
1、建立與刪除
s=[]//建立空列表 s=list()//建立數值列表 del s//刪除列表
2、訪問列表元素
print(s)//[,,]列印整體 print(s[n])//列印單個元素 s[st:ed]//通過切片訪問
3、遍歷
for item in s://遍歷出來的是單個元素 for index,item in enumerate(s)://遍歷索引值,元素內容
4、增、刪、改
//增 s.append(item)//列表末尾追加元素item s.extend(s1)//將列表s1新增到s s.insert(index,item)//向指定位置新增元素 //刪 del s[num]//根據索引刪除 s.remove(item)//根據內容刪除;首先判斷內容是否存在,s.count(item),計算元素出現的次數 s.pop()//返回一個元素並刪除 //改 s[num]=""//根據索引重新賦值
6、對列表進行計算
s.count(item)//item在s中出現的次數 s.index(item)//item在s中首次出現的下標,如果元素不存在,會丟擲異常 sum(s[,start])//
7、排序
s.sort(key,reverse=(True:降序/False:升序))//這是一個語句 /*key表示指定從每個元素中提取一個用於比較的元素,eg:key=str.lower,表示在排序時不區分大小寫。 對數值排序從小到大;對英文字母,先大寫後小寫;對漢字,按照第一個漢字首字母排序 排序後,原列表元素順序改變 s=[],s.sort(),print(s),在原序列上排序 */ sn=sorted(s,key,reverse) /*排序後,原列表元素順序不變,為排序後的元素建立一個副本 s=[],s1=sorted(s),print(s1)即可。 */ s.reverse()//逆序
8、列表推導式
s=[Expression for val in range]//生成指定範圍的數值列表 ns=[Expression for val in list]//根據原列表生成指定需求的新列表 ns=[Expression for val in list if condition]//從原列表中選擇符合條件的組成新列表
9、二維列表
s=[[],[]]//根據元素內容建立 s=[]//建立s[M][N]空列表 for i in range(M): s.append([]) for j in range(N): arr[i].append(j) s=[[j for j in range(N)] for i in range(M)]//建立s[M][N]空列表,先確定列,再確定行
二、元組
-
不可變序列,元素型別隨便
1、建立與刪除
t=(1,)//賦值直接建立,元組只有一個值時,不要忘記後面的’,‘ t=()//建立一個空元組 t=tuple()//建立數值元組 del t//刪除元素
2、訪問元組元素
print(t)//列印整個元組 t[num]//根據索引訪問 t[s:e]//根據切片訪問 for index,value in enumerate(t)//根據索引與內容訪問
3、修改
nt=()//整個組重新賦值 t=t+nt//連線一個元組,只能是元組
4、元組推導式
t=tuple(Expression for val in range()) t=(Expression for val in range) /* 元組推導式生成的結果是一個生成器物件 訪問元素通過t._next_(),類似於指標,遍歷完不存在 通過 for i in t:,遍歷完依舊不存在。 */
5、列表與元組的區別
- 列表可變,它的元素可以隨時修改,元組不可變,它的元素不可修改,除非整體替換
- 元組比列表的訪問和處理速度快
- 元組可以作為字典的鍵,列表不能。
三、字典
-
無序的可變序列,內容以“鍵-值”的方式存在,鍵是唯一的且不可變的,值可以有多個。
1、建立與刪除
d={k:v,}//通過賦值直接建立 d={}//建立空字典 d={t:s}//通過已經存在的元組和列表建立字典,鍵只能是元組。 d=dict()//創空,通過已有資料快速建立字典 /* d=dict(zip(s,t))//使用zip函式將列表或元組對應位置的元素組合為元組 d=dict(k=v,)//通過給定鍵值對建立 d=dict.fromkeys(list)//建立值為空的字典 */ //刪 del d d.clear()//將字典變為空字典 d.pop()//刪除並返回指定“鍵” d.popitem()//刪除並返回字典中的一個元素。
2、訪問字典
print(d)//列印訪問 d[key]//通過鍵,如果指定的鍵不存在,則會丟擲異常 d.get(key)
3、遍歷字典
d.items() /* 獲取字典的“鍵-值對”列表 for item in d.items(): for key,value in d.items(): */ values()//返回字典值 keys()//返回字典鍵
4、增、刪,改
//增 d[key]=value//當元素存在時,相當於修改 //刪 del d[key]
5、字典推導式
與列表類似 d={i:Expression for i in range} d={i:j for i,j in zip(s1,s2)}//使用列表導式
四、集合
-
無序可變序列,集合有可變和不可變之分。
1、建立
s={item,}//輸入重複元素,只會保留一個 ##### s={}//建立空字典,不能建立空集合。 //字典無序,每次輸出的元素的排列順序可能不同s=set()//建立集合並且也可將其他型別轉換為集合
2、增,刪
//增 s.add(item)//元素只能是字串、數字、布林型別的 //刪 s.remove(value)//元素不存在會丟擲異常 s.pop()//移除一個元素 s.clear()//清空
3、交集、並集、差集
&-交 |-並 - 差
4、列表、元組、字典、集合的區別
資料結構 可變 重複 有序 符號 列表(list) [] 元組(tuple) 否 () 字典(dic) 否 {k:v} 集合(set) 否 否 {}