學習筆記三 字符串,列表,字典

 

一. 列表(list)git

 1. 列表初始化定義有兩種方式:api

  1.a=[] #空list數組

  2.a=list() #空listapp

 2.列表的下標是從0開始:ide

  #list #列表、數組函數

  stus = ['王志華','喬美玲','段鑫琪','王立文' ]測試

  #      0     1      2      3spa

  列表的長度:len.net

  

  結果以下:3d

   

 3.列表的新增:

  1.直接加在末尾:append

  

    結果以下:

   

   2.指定位置增長:insert,帶下標和要插入的值

  

    結果以下:

  

  4.列表的修改:直接經過下標賦值,下標必定要在列表的長度範圍內(能夠用正負數,-1表明列表的最後一位),超出則報錯

  正常賦值:

  

  結果以下:

   

   異常賦值:超出列表範圍

  

   結果以下:

  

 

  5.列表的刪除:

   1.pop:有返回值,是返回刪除的那個元素。不帶參數爲默認刪除列表的最後一個元素,也能夠指定下標。若是指定一個不存在的下標,則會報錯。是對下標指定刪除。

   正常刪除:

   

 

    結果以下:

   

 

    異常刪除:

   

      結果以下:

   

   2.remove:返回None,經過列表元素值刪除,若是傳入一個不存在的元素,則會報錯。是對元素值指定刪除。  

   技術要點:

 

   1)在列表非尾部增長或刪除元素時,該位置後面元素會向後移動或向前移動,保證元素之間沒有縫隙,這樣的話,這些元素的索引會發生變化。

 

   2)remove()方法刪除列表中指定值的首次出現,也就是說,以lst.remove(3)爲例,若是列表lst中有多個3,那麼只有第一個3被刪除,同時該位置後面的全部元素向前移動,索引減1。

 

   正常刪除:

   

      結果以下:

   

      異常刪除:

   

    結果以下:

   

      3. del:返回None,是經過列表進行下標檢索刪除。若是指定不存在則報錯。是對一個變量進行指定刪除,因爲是對列表變量進行刪除,則能夠刪除一個列表區間段和整個列表,del是解除變量的引用,當整個列表引用解除後,列表則不存在。

   正常刪除:

   

    結果以下:

   

      批量刪除:

   

    結果以下:

   

    由於參數是變量,則也能夠刪除整個列表,刪除後的列表不可用。

   

 

              異常刪除:

   

    結果以下:

   

   4.清空列表:clear

  與del不一樣,clear只是清空列表數據,不會解除對列表的引用,清空完列表還在。

        

 

  6.列表的查找:

  1.經過指定下標獲取某個元素的值:stus[3]

  2.查詢某個元素在list裏面出現的次數:count,若是未出現則爲0

  

     3.返回某個元素的下標:index,若是列表裏出現屢次,則返回第一次出現的下標。若是元素不存在則報錯。

  正常測試:

  

 

 

          異常查詢:

                

         

 

   7.列表排序: 

  1.reverse:列表反轉,該方法返回None,可是會對列表的元素進行反向排序。

  

    2.sort:函數用於對原列表進行排序,若是指定參數,則使用比較函數指定的比較函數

  

 

     8.兩個list合併:extend

  

 

 

   9.布爾類型:布爾類型只有Ture,False,經常使用於真假判斷。

  判斷一個元素在不在list裏,能夠用in:

  

 

 

  10.list循環:

   1.普通循環:若是直接循環一個list,那麼每次取的就是list裏面的每個元素

   

    2.enumerate:同時取到列表的下標和值

   

 

 

 

    11.多維數組:列表嵌套

   須要一層層的定位到要操做的維數,其餘全部的方法同一維同樣。

  

 

 

      12.切片:list取值的一種方式,它指定範圍取值,顧頭不顧尾,能夠指定步長(以N爲總體做爲一個跨度),數值能夠爲負數,可是指定的值都要在list範圍內,否則會報錯。

         

   按照取值的方向,前下標必定要先比後下標先出現,不然取不到正確的值:

 


二.字典(dict):
  字典是一個大括號括起來的key-value形式,與list不一樣的是,dict是無序的,即每次打印可能看到值得順序都不同;dict裏的key是
惟一的不容許重複,而list裏的值是能夠重複的。所以dict的查詢比list快,由於無序遍歷。

1.查詢:
 直接經過key獲取值,和列表取值方式同樣,可是若是key的值不存在會報錯:

爲了防止key不存在產生的報錯,使用get查詢,若是key不存在,get默認返回None,也能夠指定當key不存在時的返回值。


2.修改:
 和list同樣,經過key直接賦值。


3.新增:
 同修改同樣,直接用key賦值,因爲同修改同樣,因此當key若是是已存在的,則會進行修改操做:

爲了不上述的新增變修改,可使用setdefault,
用setdefault新增一個已經存在的key,它不會改變原來key的value。


4.刪除:
 1.pop:返回刪除的value值,與list不一樣的是必須制定key值。

2.del:無返回值,解除引用,做用整個dict的時候,dict則再也不存在,同list。

3.clear():清空,只會清除內容,可是保留變量引用。

4.popitem():隨機刪除一個非空dict的key-value,且將刪除的這個值返回。


5.循環:
 1.直接循環:效率高,不須要將dict轉換成list,遍歷取的是dict裏的key值。

2.間接取key循環:dict.keys()效率低,會先從dict將全部的key取出來組成一個list再進行for遍歷。
 3.value循環:dict.values()該方法也會先從dict將全部的value取出來組成一個list再進行for遍歷
 4.key,value循環:dict.items()該方法會將dict的key-value以元組的形式組合成一個一位數組再進行遍歷。

   

  6.判斷key是否存在:in

 

 

   7.字典嵌套:

 字典嵌套也是層層定位。

 若有如下字典:

  

    結果以下:

  

 

 

三.字符串:

 下標 索引、切片 一樣適用於字符串,字符串也是能夠循環的。

  如下是字符串的經常使用方法介紹:

  1.strip:以指定方式去掉字符串兩邊的內容,字符串中間的不能夠去除。不帶參數默認是去掉空格和換行符。

        

      2.count:某個字符串出現的次數。若是沒有出現,則次數爲0。

   

  3.index:找某個字符串下標,若是有多個,則返回第一次出現的下標。若是查找的字符串不存的話,報錯(和list同樣)。

   

   4.find:找某個字符串下標,若是有多個,則返回第一次出現的下標。查找的字符串不存在會返回-1。與index的區別在於找不到不會報錯。

   

 

       5.replace:將字符串中的字符指定替換。能夠設定替換的個數,默認爲所有替換。替換以後不會改變原有的字符串,會返回一個新的字符串。

   

 

        6.upper:將字符串中的小寫字母轉爲大寫字母。替換以後不會改變原有的字符串,會返回一個新的字符串。

   

          7.lower:將字符串中的大寫字母轉爲小寫字母。替換以後不會改變原有的字符串,會返回一個新的字符串。

         

        8.capitalize:將字符串中的首字母大寫。執行後不會改變原有的字符串,會返回一個新的字符串。

    

          9.startswith:判斷是否以某個字符串開頭。

      

     10.endswith:判斷是否以某個字符串結尾。用於文件後綴名很方便。

      

         11.islower:判斷是否都是小寫字母。

    

        12.isupper:判斷是否都是大寫字母。

       

         13.isdigit:判斷是否爲純數字。

            

     14.center:將字符串居中顯示,長度指定,不足的地方以指定模式補齊,執行後不會改變原有的字符串,會返回一個新的字符串。

     

           15.isalpha:判斷是否是爲字母、或者漢字,不能有數字和特殊符號。 

        

           16.isalnum:字符串裏面只要沒有特殊字符,就返回true。

       

           17.isidentifier:是否是一個合法的變量名。

       

           18.isspace:檢測字符串是否只由空格組成。

     

 

           19.format:一種格式化字符串的函數,基本語法是經過 {} 和 : 來代替之前的 % 。方便的是當佔位符太多時,能夠忽略佔位符的順序。SQL語句經常使用。

     例如沒有格式化以前,語句:

            s='insert into user value (%s,%s,%s,%s,%s,%s)'%(user,paswd,)

            格式化的方法爲:

     

          20.format_map:執行字符串格式化操做,替換字段使用{}分隔,同str.format(**mapping), 除了直接使用mapping,而不復制到一個dict。和format相比,須要將要輸入的參數以dict的形式直接映射。SQL語句經常使用。

    

 

           結果以下: 

        

 

          21.zfill:不夠的位數以0補齊。位數若是夠了則忽略。

         

          22.split:將字符串以指定形式分隔後以list形式返回。默認以空格符分隔。

     

          23.join:以某個字符串把list裏面元素連起來,以字符串的形式返回。操做對象必須是個list。

      

 

 

四.簡單的文件操做:

  1.文件的四種操做:  

    1.open:打開文件,必須存在在才能夠讀。 

    2.close:關閉文件。

    3.read:讀文件。

   4.write:寫文件。

  2.文件的模式:

    1.r 打開只讀文件,該文件必須存在。 
  2.r+ 打開可讀寫的文件,該文件必須存在。從頂部開始寫,會覆蓋以前此位置的內容 
  3.w 打開只寫文件,若文件存在則文件長度清爲0,即該文件內容會消失。若文件不存在則創建該文件。 
  4.w+ 打開可讀寫文件,若文件存在則文件長度清爲零,即該文件內容會消失。若文件不存在則創建該文件。 
  5.a 以附加的方式打開只寫文件。若文件不存在,則會創建該文件,若是文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。 
  6.a+ 以附加方式打開可讀寫的文件。若文件不存在,則會創建該文件,若是文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。 

  7.上述的形態字符串均可以再加一個b字符,如rb、w+b或ab+等組合,加入b 字符用來告訴函數庫打開的文件爲二進制文件,而非純文字文件。不過在POSIX系統,包含Linux都會忽略該字符。

    

 

 

     

 

 

 

  

 

 

 

 

     

 

 

 

        

 

 

 

    

 

    

 

 

 

 

 

 

 

 

 

 

 

   

 

 

 

 

 

 

 

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 



 

 



 

 

 

 

 

 

         

 

  

  

 

 

 

 

 

 

 

 

 

相關文章
相關標籤/搜索