1. 程式人生 > >Python<1>List

Python<1>List

復雜 filename ase code 列表解析 learning [] 語句 reverse

list裏的元素以逗號隔開,以[]包圍,當中元素的類型隨意

官方一點的說:list列表是一個隨意類型的對象的位置相關的有序集合

沒有固定的大小(1)。通過對偏移量

(2)進行賦值以及其它各列表的方法進行調用,可以改動列表的大小

(1)雖然列表沒有固定的大小。Python仍不同意引用不存在的元素,超出列表末尾之外的索引會導致錯誤。賦值也是。

(2)我們能夠通過偏移量對列表進行索引。切片等操作,並且索引值可為負值。

list的主要屬性

<1>隨意對象的有序集合(從左到右的順序)

<2>通過偏移量讀取

<3>可變長度、異構以及隨意嵌套(能夠創建列表的子列表的子列表...)

<4>屬於可變序列的分類(可在原處改動,序列操作在列表和字符串中工作方式同樣。差別就是列表可變。能夠運行

刪除、索引賦值等操作。字符串不可變,不能運行這些)

<5>對象引用數組

經常使用list操作

<1>L=[] 一個空列表 L=list()

<2>L=[0,1,2,3] 四項:索引為0-3

<3>L=[1,[2,3]] 嵌套子列表

<4>L[i] L[i:j] len(L) 索引、分片、求長度

<5>L1+L2 合並

<6>L * 3 反復3次

<7>for x in L : print x 叠代打印

<8>L.append(x) 插入

<9>L.extend([x,y,z]) 增長

<10>L.insert(I,x) 在I處插入x

<11>L.Count(x) 返回x出現的次數

<12>L.sort() 排序

<13>L.reverse 反

<14>del L[K] 刪除

<15>del L[m,n]

<16>L.pop()

<17>L.remove(x)

<18>L[i:j]=[]

<19>x in L

range()和split()函數得到的都是list

L=range(-5,5) -> L=[-5,-4,-3,-2,-1,0,1,2,3,4]

L=‘this is a test‘.split() -> L=[‘this‘,‘is‘,‘a‘,‘test‘]

註:

{1}索引、分片的賦值是直接在原list上直接改動的。

如<18>分片的賦值能夠看做(3)將原片刪除。再把數據插入。

註:當賦值與分片的值發生重疊時,須要具體的分析

比方L[2:5] = L[3:6] 是可行的,在刪除2:5之前已經把3:6的數據提出了,刪除之後再插入2:5。

(3)實際情況並不是如此,但這有助於你理解為什麽刪除的數目不須要與插入的數目相等。

比方說L=[1,2,3,4] L[1:2]=[4,5] 此時L=[1,4,5,3,4] L[1:2]=[]是把第二項刪除

{2}L.append(x)與L+[x]的結果類似,不同的是前者是原處改動L,而後者會生成新的列表。

{3}對於sort,我們能夠通過傳入keyword參數來改動排序行為。在2.6以及之前的版本號中,不同類型的數據也是能夠

排序的。這一次序是依照類型名稱定的。比如。全部整數都小於全部字符串..等等。在3.0中就不一樣了。不同類型

排序會發生異常。

{4}要當心append和sort都是在原處直接改動列表,返回為None。假設編輯類似L=L.append(x)的語句。將不會得到

L改動後的值(實際上會失去整個列表的引用),所以沒有理由又一次賦值。

{5}分片[i:j]的值。包含左邊界,不包含右邊界。

L=[0,1,2] L[1:]=[] -> L=[0] L[0]=[]->L=[[]]

Python中還包含了一個更高級的操作稱為列表解析表達式,因為比較復雜。以後再單獨寫一篇說明。

實現命令行指定一個數值文件。輸出最大值和最小值

import sys   #為了獲得命令行參數

if len(sys.argv) != 2

    print"please supply a filename"

    raise SystemExit(1)

f = open(sys.argv[1])  

lines = f.readlines()       #打開文件 將全部輸入行存在一個字符串列表中

f.close

fvalues=[float(line)  for line in lines]     #全部字符串循環,並對每一個元素float 構造一個新列表

print "The minimum value is ",min(fvalues)               

print "The maximum value is ",max(fvalues)       #通過內置函數得到最大值和最小值


參考<<learning python>>

Python&lt;1&gt;List