python中list列表屬于一種對象類型,作為重要的一種數據存儲對象,相信每位初學python者都會接觸,就像C/C++語言中數組一樣。介于此,本文不再過多詳細介紹list列表基礎知識和其函數接口,只介紹本人認為在使用過程中需要注意的幾個容易忽略的知識點,希望給更多人在使用list列表時候提個醒。
1. 元素類型 list列表以中括號形式羅列各個元素,并且列表中元素可以是任意類型,包括元組,列表以及字典。各種類型可以混合表示。如下:
listA = [1,'12',8.8,[3,4],(5,6),{'dist':7}]2. 內建函數range語句 我們直接看示例吧,如下:
x = [3,4,5,6]for i in range(len(x)) 關于內建函數range(start=0, stop [,step] )表示數字元素組成的列表,范圍介于start和stop之間,并且跨度為step。start默認為0,step默認為1。start和stop可以忽略不寫。單是如果步長不是1的時候,start和stop都要表示出來,哪怕start為0。 以上其實并不是我想要介紹的重點,重點是range( )范圍是不包括stop的,所以上面示例只有4個數0,1,2,3,并不包含4。3. 列表解析建立列表 list列表可以正常初始化各個元素,但是如果列表中各個元素包含一定規律,其實python早就方便的定義了一種快捷賦值方法。例如我們想初始化某個列表中各個元素為0,還有我們想初始化列表中各個元素是遞歸增長的等等。這時候我們就可以借助for語句依靠列表解析的方法初始化列表元素,如下:
listA = [x**2 for x in range(1,5)] # 結果為:[1,4,9,16] 這里x**2
表示求x的2次方,另外需要注意x**2
和for之間并沒有’,’。
4. 列表末尾增加元素 列表末尾增加元素主要有append( )和extend( )兩種函數方法,以及索引表達。但是它們的使用需要注意以下幾個地方。如下:
listA = [1,2,3]listB = [4,5,6]listA.extend([4,5,6]) # 結果為:[1,2,3,4,5,6]listA.extend(listB) # 結果為:[1,2,3,4,5,6]extend()函數方法是連接兩個列表作用,所以它的參數不可以是一個數,必須為一個列表,更準確來說參數必須可迭代。
listA.append([4,5,6]) # 結果為:[ 1,2,3, [4,5,6] ]listA.append(10) # 結果為: [ 1,2,3,10]append()函數方法是在列表尾部增加一個元素,可以是數,也可以是一個列表。注意第一個例子,結果并不是[1,2,3,4,5,6]。注意其和extend中第一個例子的區別。
listA[len(listA):] = listB #結果為:[1,2,3,4,5,6]上面也是一樣的道理,是表示列表合并,不是表示增加一個列表元素。所以結果并不是[ 1,2,3, [4,5,6] ]。
5. 索引表達 A = [ 1, 2, 3, 4 ] 中,A[0]—A[3]分別表示1,2,3,4。而A[-1]—A[-4]分別表示4,3,2,1。記住,兩種方式都是索引值小的對應的是靠前的元素。
6. sort( )方法 list列表自帶排序函數接口,默認是升序排序,如下:
listA.sort() # 默認是升序排序一個列表listA.sort(reverse=true) # 降序排序方式但是該處需要注意sort( )函數方法對list列表是有要求限制的,它要求列表中元素不可以是字符串和數字混合,當然元組,列表等就更不可以出現了。
本文會繼續補充。。。
個人學習記錄,由于能力和時間有限,如果有錯誤望讀者糾正,謝謝!
新聞熱點
疑難解答