2.1.1 列表建立與刪除

  使用「=」直接將一個列表賦值給變量便可建立列表對象,例如:shell

1 >>> a_list = ['a','b','mpilgrim','z','example'] 2 >>> a_list = [] #建立空列表

 

  也可使用list()函數將元組、range對象、字符串、字典集合或其餘類型的可迭代對象類型的數據轉換爲列表。須要注意的是,把字典轉換爲列表時默認是將字典的「鍵」轉換爲列表,而不是把字典元素轉換爲列表,若是想把字典的元素轉換爲列表,須要使用字典對象的item()方法明確說明。例如:dom

 1 >>> a_list = list((3,5,7,9)) #將元組轉換爲列表  2 >>> a_list  3 [3, 5, 7, 9]  4 >>>  5 >>> list(range(1,20,2)) #將range對象轉換爲列表  6 [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]  7 >>>  8 >>> list('hello world') #將字符串轉換爲列表  9 ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'] 10 >>> 11 >>> list({3,7,5}) #將集合轉換爲列表 12 [3, 5, 7] 13 >>> 14 >>> list({'a':3,'b':9,'c':78}) #將字典的「鍵」轉換爲列表 15 ['c', 'a', 'b'] 16 >>> 17 >>> list({'a':3,'b':9,'c':78}.values()) #將字典的「值」轉換爲列表 18 [78, 3, 9] 19 >>> 20 >>> list({'a':3,'b':9,'c':78}.items()) #將字典的「鍵:值」對轉換爲列表 21 [('c', 78), ('a', 3), ('b', 9)] 22 >>> 23 >>> x = list() #建立空列表 24 >>>

   

  在Python社區中,習慣把list()還有後面很快就會學到的tuple()、set()、dict()這樣的函數稱爲「工廠函數」,由於這些函數能夠生成新的數據類型。函數

  建立列表以後,可使用整數做爲下標來訪問其中的元素,其中0表示第一個元素,1表示第2個元素,2表示第3個元素,以此類推;列表還支持使用負整數做爲下標,其中-1表示左後1個元素,-2表示倒數第2個元素,以此類推,以下所示:spa

 1 >>> x = list(range(10)) #建立列表  2 >>> import random  3 >>> random.shuffle(x) #把列表中的元素順序打亂  4 >>> x  5 [7, 8, 3, 2, 9, 4, 6, 0, 1, 5]  6 >>>  7 >>> x[0] #訪問第1個元素  8 7  9 >>> x[1] #訪問第2個元素 10 8 11 >>> 12 >>> x[-1] #訪問最後一個元素 13 5 14 >>>

 

  正向索引            0      1      2       3         4        5        6           7        8          9code

 [7, 8, 3, 2, 9, 4, 6, 0, 1, 5]

  反向索引          -10     -9      -8     -7       -6      -5       -4          -3        -2        -1對象

 

  當一個列表再也不使用時,可使用del命令將其刪除,這一點適用於全部類型的Python對象。另外,也可使用del命令刪除列表、字典等可變序列中的部分元素,而不能刪除元組、字符串等不可變序列中的部分元素。例如:blog

 1 >>> x = [1,2,3]  2 >>>  3 >>> del x[1] #刪除列表中指定位置的元素,即索引爲1的第2個元素  4 >>> x  5 [1, 3]  6 >>>  7 >>> del x #刪除列表對象  8 >>> x  9 Traceback (most recent call last): 10 File "<pyshell#19>", line 1, in <module> 11  x 12 NameError: name 'x' is not defined 13 >>> 14 >>> 15 >>> x = {'a':3,'b':6,'c':9} 16 >>> 17 >>> del x['a'] #刪除字典中部分元素 18 >>> x 19 {'b': 6, 'c': 9} 20 >>> 21 >>> 22 >>> x = (1,2,3) #建立元組對象 23 >>> del x[0] #不容許刪除元組中的元素 24 Traceback (most recent call last): 25 File "<pyshell#29>", line 1, in <module> 26 del x[0] #不容許刪除元組中的元素 27 TypeError: 'tuple' object doesn't support item deletion 28 >>> 29 >>> 30 >>> x[0] = 4 #也不能修改元組中的值,要不怎麼叫不可變序列呢 31 Traceback (most recent call last): 32 File "<pyshell#33>", line 1, in <module> 33 x[0] = 4 34 TypeError: 'tuple' object does not support item assignment 35 >>>

 

  拓展知識:索引

    垃圾回收機制。通常來講,使用del刪除對象以後Python會在恰當的時候調用垃圾回收機制來釋放內存,咱們也能夠在必要的時候導入Python標準庫gc以後調用gc.collect()函數馬上啓動垃圾回收機制來釋放內存。內存

相關文章
相關標籤/搜索