==========列表基礎===========
列表中的資料是可以被修改的。字典,元組,集合是不能被修改的。
>>> li1=['3edf','dafdas']
>>> li2=[li1,'23432cds'] #list中還可以放list
>>> print li2
[['3edf', 'dafdas'], '23432cds']
>>> li3=[]
>>> len(li3)
0
>>> li2=['eaf','dvsd3',23234]
>>> print li2[0] #通過index下標來訪問list中的元素
eaf
>>> print li2[1]
dvsd3
>>> li4=['sadkfh',34873,'3dsaduf4']
>>> li4[0]=li4[0].replace('h','abc') #替換列表中的某資料項
>>> print li4
['sadkfabc', 34873, '3dsaduf4']
>>> li4=['daf','ehwe',3454,'dfasf']
>>> li5=li4[1:3] #list的切片,下標從1開始切片到3的位置所包含的元素,也就是1和2
>>> print li5
['ehwe', 3454]
>>> li5=li4[:] #完全切給它了
>>> print li5
['daf', 'ehwe', 3454, 'dfasf']
>>> for lii in li5: #for迴圈遍歷list列表
print lii
daf
ehwe
3454
dfasf
>>> lii=iter(li5) #用迭代器來取也可以
>>> print lii.next()
daf
===================list與C語言中陣列的區別===========
>>> li6=['dgfd',343,'dfa','45hj']
>>> li7=['dfa',767,'34f']
>>> li8=li6+li7 #list可以通過+進行連線
>>> print li8
['dgfd', 343, 'dfa', '45hj', 'dfa', 767, '34f']
>>> id(li8) #看li8的記憶體地址
47009664
>>> li8=(li6+li7)*2 #list可以用*,乘法 等同於多個加法
>>> print li8
['dgfd', 343, 'dfa', '45hj', 'dfa', 767, '34f', 'dgfd', 343, 'dfa', '45hj', 'dfa', 767, '34f']
>>> id(li8)
47008944
這樣子的動態賦值是不行的。
>>> li7.append('dfad') #append()在list列表的最後一個位置附加一個資料項,也可以是列表型別的
>>> print li7
[-1, 'dfa', 767, -2.5, '34f', 6, 'dfadf', 'dfad']
>>> li7.insert(0,-1) #insert()在下標為n的位置放置m這個資料項。
>>> print li7
[-1, 'dfa', 767, '34f']
>>> li7.insert(3,-2.5) #-2.5放在下標為3的位置
>>> print li7
[-1, 'dfa', 767, -2.5, '34f']
>>> li9=list('www.baidu.com') #list(str)將字串轉化為list列表型別
>>> print li9
['w', 'w', 'w', '.', 'b', 'a', 'i', 'd', 'u', '.', 'c', 'o', 'm']
>>> print li9.index('w') #index()獲取list中某資料第一次出現的位置下標
0
>>> li9.insert(li9.index('w'),'begin')
>>> print li9
['begin', 'w', 'w', 'w', '.', 'b', 'a', 'i', 'd', 'u', '.', 'c', 'o', 'm']
>>> li1=range(1,10) #range(n,m)返回一個從n到m-1的整數列表
>>> print li1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>li2.extend(li3) # list1.extend(list2)將list2中的每個元素依次附加到list1的最後面
>>> print li2
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 15, 16, 17, 18, 19, 15, 16, 17, 18, 19]
>>> print li2
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 15, 16, 17, 18, 19, 15, 16, 17, 18, 19]
>>> li2.count(15) #list.count(v)統計v在list中出現的次數,返回一個整數
3
>>> li2.remove(15) 刪除#list.remove(n) 刪除list中第一次出現的n(無返回值)
>>> print li2
[10, 11, 12, 13, 14, 16, 17, 18, 19, 15, 16, 17, 18, 19, 15, 16, 17, 18, 19]
>>>
>>> print li3
['a', 'b', 'c', 'd', 'e', 'f', 100]
>>> li3.__delitem__(3) 刪除#list.__delitem__(index)刪除某個位置上的元素
>>> print li3
['a', 'b', 'c', 'e', 'f', 100]
>>>
.__XXX__()這種書寫方法的函式都是Python的內建函式,自己寫函式的時候要儘量避免掉這種寫法。
>>> print li3
['a', 'b', 'c', 'f', 100]
>>> cd=li3.pop(4) 刪除#list.pop(index)將list中index位置的值冒泡剔出,返回index位置的值
>>> print cd
100
>>> print li3
['a', 'b', 'c', 'f']
>>> li4=range(0,11)
>>> print li4
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> li4.reverse() #list.reverse() 將list逆序排列,沒有返回值,直接將list更改了
>>> print li4
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> print li4
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> li4=li4[::-1] #通過切片也可以實現逆序
>>> print li4
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
===============列表與函式==============
#coding:utf-8
def mycount(list):
i=len(list)-list.count('.')
return i
s='wwwbaidu.cofgsm'
list1=list(s)
print 'list1',list1
print '字串中出了.之外其他的字元一共有%d'%(mycount(list1)),'個'
=============列表與檔案===============
#coding:utf-8
#檔案讀取
fr=open(r'aaa.txt','r')
list1=fr.readlines()
for ii in list1:
ii.strip('\n')
print ii
#coding:utf-8
#檔案寫入 list寫入檔案,只能寫入str型別
fr=open(r'aaa.txt','r')
list1=fr.readlines()
ami001=open(r'ami001.txt','w')
for ii in list1:
ii.strip('\n')
print ii
ami001.write(ii)
ami001.close()
fr.close()
>>> isinstance(1,int) #isinstance(n,m)判斷n是m型別的嗎?是返回True,否返回False
True
>>> isinstance(1.05,int)
False
>>> isinstance(1.05,float)
True
>>> isinstance('1.05',int)
False
>>> isinstance('1.05',str)
True
>>>
#coding:utf-8
#混合資料型別的list寫入檔案
li1=range(0,11)
li2='www.baidu.com'
li3=li1+list(li2)
li3.append(54.55)
li3.append(565)
print li3
i=0
print 'write li3 into ami002.txt'
ami002=open('ami002.txt','w')
while i<len(li3):
if isinstance(li3[i],str)==False:
li3[i]=str(li3[i])
ami002.write(li3[i]+'\n')
i=i+1
ami002.close()