PYTHON程式語言的學習-3

本講次我們介紹如何使用列表(清單,list)。



範例程式10:列表1


範例程式10:影片連結




# coding=Big5
# list(列表;清單) operation

b=['Chen','male','Taichung',56,165.0,71.5]
for i in b:     #迴圈與列表的內容物結合
    print i, type(i)  #逐一打出列表內容元素的資料型態
print 'len(b)=',len(b)
    
a=[0,-4,2,13,4,7,6,12]  #一個整數元素所形成的列表
print 'a=',a,'  type(a)=',type(a)
print 'a[1:5]=',a[1:5]   # a的第2~5的元素。
print 'a[1:5:2]=',a[1:6:2]   # a每隔2的元素。a[1],a[3],a[5]
print 'len(a)=',len(a)	 # a 的元素個數。
print 'max(a)=',max(a)	# a 的最大元素。
print 'min(a)=',min(a)	# a 的最小元素。
print '3 in a:', 3 in a	# 3在a之中。True
print '8 in a:', 8 in a	# 8在a之中。False
print '9 not in a:', 9 not in a	# 9不在a之中。True

for i in range(len(a)):
    print 'a的第',i,'個元素=',a[i]
#===========螢幕上可以看到的輸出結果=======
Chen 
male 
Taichung 
56 
165.0 
71.5 
len(b)= 6
a= [0, -4, 2, 13, 4, 7, 6, 12]   type(a)= 
a[1:5]= [-4, 2, 13, 4]
a[1:5:2]= [-4, 13, 7]
len(a)= 8
max(a)= 13
min(a)= -4
3 in a: False
8 in a: False
9 not in a: True
a的第 0 個元素= 0
a的第 1 個元素= -4
a的第 2 個元素= 2
a的第 3 個元素= 13
a的第 4 個元素= 4
a的第 5 個元素= 7
a的第 6 個元素= 6
a的第 7 個元素= 12





範例程式11:列表2
# coding=Big5
L1=list('Physics') #將字串轉換為清單。
print 'L1=',L1,' len(L1)=',len(L1)
L2=[[1,2],[3,4],[5,6],7,8]
print 'L2=',L2
print 'L2[2][0]=',L2[2][0]  #取出巢狀清單之特定元素
                            #(L2的第3元素之第1元素)
L2[1]='YCC'	# 將L2的L2[1]元素取代為字串'YCC'。
print 'L2=',L2
L2[1]=L2[1]*3	# 將L2的L2[1]元素擴充為原來的3倍。
print '將L2的L2[1]擴充為原來的3倍,L2=',L2
L2[1:4]=[]	# 將L2的第2~4元素清空。
print '使用 L2[1:4]=[]之後, L2=',L2
#===========螢幕上可以看到的輸出結果=======
1= ['P', 'h', 'y', 's', 'i', 'c', 's']  len(L1)= 7
L2= [[1, 2], [3, 4], [5, 6], 7, 8]
L2[2][0]= 5
L2= [[1, 2], 'YCC', [5, 6], 7, 8]
將L2的L2[1]擴充為原來的3倍,L2= [[1, 2], 'YCCYCCYCC', [5, 6], 7, 8]
使用 L2[1:4]=[]之後, L2= [[1, 2], 8]










範例程式12:列表3

list operations: extend, append, insert, remove


#list列表
L=[1,2,3]
a=[3,4,6]
L.extend(a)
print 'after L.extend(a), L=',L
L.insert(4, 'THU')
print "L.insert(4,'THU')=",L
p5=L.pop(5)
print 'p5=',p5
print 'after pop(5), L=',L
print '===L=',L
L.remove(3)
print 'L.remove(3)=',L
L.remove('THU')
print "L.remove('THU')=",L
for i in range(5):
    L.append(i**2)
print 'L=',L
M=sorted(L)
print 'the sorted L saved into M, M=',M
print 'L is unchanged, L=',L
M.reverse()
print 'the sequence of M is reversed: M=',M
M.pop(8)
print 'after M.pop(8), M=',M





3. list applications:


Please compare the 2 outputs on the screen for the following code.
A=[1,2,3,4,5]
for x in A:
    print x,
print '\n'
for x in A:
    print x





範例程式14:list在向量的應用


a=[1,2,1]
b=[1,2,3]
# 向量的長度
a1=sum(a[i]**2 for i in range(3))
b1=sum(b[i]**2 for i in range(3))
print a1,b1,a1**0.5,b1**0.5
# 向量的內積
sc=sum(a[i]*b[i] for i in range(3))
print 'a dot b=',sc
# 向量的外積
c=[0 for i in range(3)]
c[0]=a[1]*b[2]-a[2]*b[1]
c[1]=a[2]*b[0]-a[0]*b[2]
c[2]=a[0]*b[1]-a[1]*b[0]
print 'c=a x b=',c





5. list applications:list的應用2:排序


a=[2,5,3,4,6,1]
b=[]
for i in range(len(a)):
    b.append(min(a))
    a.remove(min(a))
print 'b=',b




多筆數據排序
def sort2(e,N1,N2,x):
    ee=[]
    for i in range(N1):
        e1=[]
        e1.append(e[i][x])
        for j in range(N2):
            e1.append(e[i][j])
        ee.append(e1)
    ee.sort()
    es=[]
    for i in range(N1):
        ee[i].pop(0)
        es.append(list(ee[i]))
    return es

N1=4
N2=3
x=2
e1=[[2,300,5],[1,400,3],[4,100,2],[3,200,6]]
print 'e1=',e1
e2=sort2(e1,N1,N2,x)
print 'e2=',e2





6. list applications: