1. 程式人生 > >Python之List的前世今生(常見的)

Python之List的前世今生(常見的)

1、在Python中的List特別方便

2、基本概念:List指的就是線性表,中文叫列表、表、啥的都行

3、建立一個空的List,利用的中括號[]

list = []

4、偏移量、下標(角標,索引),說的有是一回事,第一個元素的下標是0,最後一個元素的下標是-1或者len(list) - 1

5、【增】新增元素的方法

list.append() 在list 末尾,即表的尾部增加一個元素

list.insert(index,'4') 在指定位置新增元素,如果指定的下標不存在,那麼就是在末尾新增,這點Python相當牛逼

listA.extend(listB) 合併兩個list   listB中仍有元素,可見是從線性表的尾部開始合併

#這是List合併的例子
>>> listA = [1,2,3]
>>> listB = [4,5,6]
>>> listA.extend(listB)
>>> listA
[1, 2, 3, 4, 5, 6]

6、【查】檢視List中的值

>>> listA
[1, 2, 3, 4, 5, 6]
>>> listA.count(4)    //嘿嘿,查詢元素4在list中的有幾個
1
>>> listA.index(5)    //查詢元素5在list中的位置,從頭部開始,第一個找到的index,找不到拋異常
4
>>>listA[3]  //通過下標訪問對應的元素
4

7、【刪】刪除List中的元素

>>> listA
[1, 2, 3, 4, 5]
>>> listA.pop()  //刪除棧頂的元素,後進先出,最後一個元素,顯然尾部最後一個元素,是最後插入的嘛
5
>>> listA
[1, 2, 3, 4]
>>> listA.pop(0) //幹掉對應下標的元素
1                //你會發現每次pop()方法,還要打印出來刪除掉的元素哈
list.remove(xx) 刪除list 裡面的一個元素,有多個相同的元素,刪除第一個 

list.pop() 有返回值,就是元素,我發現互動模式下,不寫print,也給你輸出來

list.remove() 無返回值,好吧,牛

8、【刪】用del刪除List元素,或者整個List

del  list[n] 刪除指定下標對應的元素 

del list 刪除整個列表,list刪除後無法訪問

9、排序和反轉

list.reverse() //將列表反轉

list.sort() //排序,預設升序

list.sort(reverse=True)  //降序排列

//注:list 中有字串,數字時不能排序,排序針對同類型

10、列表操作的函式,這牛13

len(list):列表元素個數 
max(list):返回列表元素最大值 
min(list):返回列表元素最小值 
list(seq):將元組轉換為列表

enumerate:用法(列印元素對應的下標)

11、list 迴圈和切片

迴圈

for i in list:
         print i
切片(list 取值的一種方法)

name[n:m]  切片是不包含後面那個元素的值(顧頭不顧尾,對的)

name[:m] 如果切片前面一個值預設的話,從開頭開始取,從下標0開始

name[n:] 如果切片後面的值預設的話,取到末尾,從長度開始

name[:] 如果全部預設,取全部

name[n:m:step]  step:步長  隔多少個元素取一次,預設不填step == 0,直接返回後繼元素

步長是正數,從左往右取 比如1

步長是負數,從右往左取 比如-1

注:切片同樣適用於字串,字串也有下標,艹,那是必須的

12、列表生成方式

例子1:要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
可以用list(range(1, 11))   //range()函式本身就會返回一個List,不含當前數的List,也可以傳一 
                          //個引數,預設從0開始

>>>list = list(range(1,11))

例子2:生成[1x1, 2x2, 3x3, ..., 10x10]
可以用list = list(x * x for x in range(1,11))
例子3:for迴圈後面還可以加上if判斷,這樣我們就可以篩選出僅偶數的平方:list = list(x * x for x in range(1,11) if x%2== 0)     //這裡使用list函式

例子4:使用兩層迴圈,可以生成全排列:
list = [m + n for m in 'ABC' for n in 'XYZ']
print(list)
輸出結果:['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

13、list也一樣,不同型別的物件可以放在一起

>>> tempA = [2,"df","3.23"]
>>> tempA
[2, 'df', '3.23']