1. 程式人生 > 其它 >Python基礎篇—序列

Python基礎篇—序列

序列

  • 用於存放多個值的連續的記憶體空間,並且按一定的順序排列,每一個位置分配一個數字,稱為索引或位置

    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) {}