1. 程式人生 > >python初學一(list的處理方式)

python初學一(list的處理方式)

一、列表的基本知識:

    1、列表的建立:

       ①、直接建立:

                  

       ②、用list()轉化:

                    函式物件必須是iterable,list(iterable);

                    列表與字串互相轉化:

                             

                                                   

    2、列表可以進行拼接(+),類似str:

str1 = [1,2,]
str2 = ['a','b']
print(str1+str2)       相當於 str1.expend(str2)

二、列表元素的增刪改查:

    1、增加元素:   append、extend、insert 

                         全是是list內部函式,不可用賦值的方法增加列表的元素,區別於dict。

        ①append  追加 : str.append()

                                 append函式沒有return值,新增元素儲存在原list中。

                               

                             

list1 = [1,2,'a']
list1.append([6,7,8])
print(list1)        # 結果 [1, 2, 'a', [6, 7, 8]]  注意與extend的區別。

                          

         ②expend 擴充套件 :str.extend()

                  

list1 = [1,2,'a']
list1.extend([777,888,9999])
print(list1)        #結果   [1, 2, 'a', 777, 888, 9999]

 

         ③insert 插入: str.insert()

                 

list1 = [1,2,'a']
list1.insert(2,[99,000])      # 先索引 後插入值
print(list1)          # 結果  [1, 2, [99, 0], 'a']   

    2、刪除元素(pop、remove、del(系統函式)):

         ①pop():根據 索引,得到 值

           

list1 = [1,2,'a'] 
p = list1.pop()                   # 支援索引  預設最後一個  return刪除元素
print(list1)                  #刪除元素後的list
print(p)           # return刪除元素
# 結果   [1, 2]
         a

    ②remove:根據  值,只刪一個

             不知道索引時,指定元素刪除,重複元素時預設只刪除第一個,沒有return值。

list1 = [1,2,'a',9999,9999,9999]
p = list1.remove(9999)
print(list1)
print(p)

            

        ③系統函式del: 根據 索引,不可訪問

                          用法:del list[index] ,不加索引時全部刪除,且刪除不可訪問,注意與  clear 區別 

list1 = [1,2,'a',9999,9999,9999]
del list1[3]           #
print(list1)

               

    3、修改元素和檢視元素:

        ①查詢元素: 

                        用索引的方式查詢元素。

        ②修改元素:

                        用索引賦值的方式修改元素 : list1[index] = '    ',但是不可以利用賦值操作增加 索引範圍 以外的元素(增加用append、extend)

    4、查詢元素是否存在: in、not in  返回bool值

 

三、list函式:

        1、list常用的系統函式:max()  取最大值

                

             注意:      max 與  min 是按照ASCII碼來排序,根據第一個字母,如果元素是列表,列表比較大小是按照列表第一個元素來比較。

                            

                            max 、min可用於字串中。

list1 = [1,2,'a',9999,9999,9999]   
list2 = ['a78','123','sh']
list3 = [747,888,989]
print(max("29889aA7"))     
print(list1)                #報錯  列表中int與str無法比較
print(list2) 
print(list3) 

    2、計數count, 擴充套件extend、索引index:

            

list1 = [1,2,'a',9999,9999,9999]
print(list1.count(9999))

print(list1.index(9999,4,5))

   3、反向reverse,排序sort,清空clear,複製copy:

                             

                   

                         注意        sort()沒有返回值,改變原list

                                        copy()為淺拷貝

                                        sort()預設從小到大

         (1)list.clear() 注意事項:

               清空clear()請注意,建議用 賦值 空列表([]) 來清空。

list1 = [1,2,3]
list2 = []
list2.append(list1)           append追加列表時相當於追加一個 引用,他們共同使用一個記憶體空間,因此清空list1時list2也跟著清空。
print(list1,list2)
list1.clear()      
print(list1,list2)         # 結果 :  [1, 2, 3] [[1, 2, 3]]
                           #         [] [[]]


#   改進1、
import copy
list1 = [1,2,3]
list2 = []
list2.append(list1)
list2 = copy.deepcopy(list2)             深拷貝         
print(list1,list2) 
list1.clear()               
print(list1,list2)         # 結果 :   [1, 2, 3] [[1, 2, 3]]
                                      [] [[1, 2, 3]]
# 改進2、
        可以將原始碼中 list1.clear() 改為 list1 = [] 。 列印結果與 改進1 結果相同。