1. 程式人生 > >2.1.1 列表創建與刪除

2.1.1 列表創建與刪除

val dom nbsp 也不能 shu 機制 defined shel lin

  使用“=”直接將一個列表賦值給變量即可創建列表對象,例如:

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

  也可以使用list()函數將元組、range對象、字符串、字典集合或其他類型的可叠代對象類型的數據轉換為列表。需要註意的是,把字典轉換為列表時默認是將字典的“鍵”轉換為列表,而不是把字典元素轉換為列表,如果想把字典的元素轉換為列表,需要使用字典對象的item()方法明確說明。例如:

 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個元素,以此類推,如下所示:

 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 9

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

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

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

 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 doesnt 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()函數立刻啟動垃圾回收機制來釋放內存。

2.1.1 列表創建與刪除