1. 程式人生 > 實用技巧 >python基礎之資料結構

python基礎之資料結構

一、序列

  1、序列是一組按照順序排列的值【資料集合】;

  2、在python中,存在三種內建的序列型別:字串、列表、元組

  3、支援索引、切片操作;

  4、索引:第一個正索引為0,指向的是左端,第一個索引為負數的時候,指向的是右端;

  5、切片:擷取字串中的一段內容

    ①使用語法[起始下標:結束下標:步長]

    ②左閉右開,不包含結束下標對應的資料;

    ③步長指的是隔幾個下標獲取一個字元,預設為1

二、字串及常用方法

  1、字串常用方法

    ①格式化:首字母大寫capitalize,大寫變小寫小寫變大寫swapcase,每個單詞首字母大寫title,移除左/右/兩側空白lstrip/rstrip/strip,大小寫轉換lower/uper;[5]

    ②判斷內容:判斷是否是字母和數字isalnum,判斷是否是字母isalpha,判斷是否是數字isdigit,判斷是否是小寫islower,判斷是否以xx結束/開始endwith/startwith;[5]

    ③連線:迴圈取出所有值,用xx去連線join;

      string.join(seq)

      以 string 作為分隔符,將 seq 中所有的元素(的字串表示)合併為一個新的字串

    ④替換:replace(被替換字串,替換字串,換多少個[預設全部替換])

      string.replace(str1, str2, num=string.count(str1))

      把 string 中的 str1 替換成 str2,如果 num 指定,則替換不超過 num 次.

    ⑤查詢:檢測物件是否在字串中find(沒找到返回-1)、index;

      string.find(str, beg=0, end=len(string))

      檢測 str 是否包含在 string 中,如果 beg 和 end 指定範圍,則檢查是否包含在指定範圍內,如果是返回開始的索引值,否則返回-1

    ⑥切割:切割字串split;

      string.split(str="", num=string.count(str))

      以 str 為分隔符切片 string,如果 num 有指定值,則僅分隔 num+ 個子字串

    ⑦計數:統計物件出現次數count

      string.count(str, beg=0, end=len(string))

      返回 str 在 string 裡面出現的次數,如果 beg 或者 end 指定則返回指定範圍內 str 出現的次數

#字串的常用方法
str = ' hello World ! '
print('首字母大寫:%s'%str.capitalize())
print('大小寫互換:%s'%str.swapcase())
print('每個單詞首字母大寫:%s'%str.title())
print('移除兩側空白:%s'%str.strip())
print('是否是數字:%s'%str.isdigit())
print('是否是字母:%s'%str.isalpha())
print('是否是字母和數字:%s'%str.isalnum())
print('是否是小寫:%s'%str.islower())
print('是否以!結束:%s'%str.endswith('!'))
print('是否是字母和數字:%s'%str.isalnum())
print('連線:%s'%'-'.join(str))
print('替換:%s'%str.replace('l','t',2))
print('查詢:%s'%str.find('o'))
print('切割:%s'%str.split(' ',2))
print('計數:%s'%str.count('l'))

首字母大寫: hello world ! 
大小寫互換: HELLO wORLD ! 
每個單詞首字母大寫: Hello World ! 
移除兩側空白:hello World !
是否是數字:False
是否是字母:False
是否是字母和數字:False
是否是小寫:False
是否以!結束:False
是否是字母和數字:False
連線: -h-e-l-l-o- -W-o-r-l-d- -!- 
替換: hetto World ! 
查詢:5
切割:['', 'hello', 'World ! ']
計數:3

  2、切片操作

二、列表及常用方法

  1、支援增刪改查、索引、切片;

  2、列表中的資料可以變化,記憶體之地不會改變;

  3、[,,,],列表中的資料項可以是任何型別的資料;

  4、常用方法

    ①增:列表後面追加append、批量新增extend、指定位置插入insert;

    ②刪:刪除最後一個元素pop、移除左邊找到的第一個元素remove、批量刪除del;

    ③查:獲取指定元素索引號index;

    ④統計:統計元素出現的次數count、最大元素max、最小元素min、元素個數len、

    ⑤排序:反轉列表reverse、列表排序sort

  

三、元組

  1、不可變序列,建立之後不能做任何修改;

  2、(,,,),資料項可以是任何型別;

  3、當元組中只有一個元素時,要加上逗號,否則直譯器會當作整型處理;

  4、常用方法-類似列表

四、字典及常用方法

  1、可以儲存任意物件;

  2、以鍵值對的形式建立,不是序列型別,無序的鍵值集合,沒有下標概念;

  3、鍵不能重複、值可以重複;

  4、鍵只能是不可變型別,如數字、字串、元組;

  5、常用方法

    ①增:新增元素:

    ②刪:del/pop刪除指定鍵、刪除元素

    ③改:修改元素update

    ④查:獲取鍵keys、獲取值values、獲取鍵值對items

    ⑤排序:sorted

dictA = {'name':'張三','age':'18','sex':'','nickname':'法外狂徒'}
print(dictA)
print('按key排序:%s'%sorted(dictA.items(),key=lambda d:d[0]))
print('按value排序:%s'%sorted(dictA.items(),key=lambda d:d[1]))

{'name': '張三', 'age': '18', 'sex': '', 'nickname': '法外狂徒'}
按key排序:[('age', '18'), ('name', '張三'), ('nickname', '法外狂徒'), ('sex', '')]
按value排序:[('age', '18'), ('name', '張三'), ('nickname', '法外狂徒'), ('sex', '')]

五、共有操作

  1、合併:兩個物件相加,會合並兩個物件,適用於字串、列表、元組;

  2、複製:物件自身按指定次數進行復制,適用於字串、列表、元組;

  3、判斷元素是否存在:in,適用於字串、列表、元組、字典;