Python列表基礎

weixin_30639719發表於2020-04-05

==========列表基礎===========

 

列表中的資料是可以被修改的。字典,元組,集合是不能被修改的。

>>> 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的位置所包含的元素,也就是12

>>> 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)返回一個從nm-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)統計vlist中出現的次數,返回一個整數

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)listindex位置的值冒泡剔出,返回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)判斷nm型別的嗎?是返回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()

轉載於:https://www.cnblogs.com/AmilyWilly/p/5103493.html

相關文章