【基礎教程】Python list列表詳解

在實際開發中,經常需要將一組(不只一個)數據存儲起來,以便後邊的代碼使用。說到這裏,一些讀者可能聽說過數組(Array),它就可以把多個數據挨個存儲到一起,通過數組下標可以訪問數組中的每個元素。

需要明確的是,Python 中沒有數組,但是加入了更加強大的列表。如果把數組看做是一個集裝箱,那麼 Python 的列表就是一個工廠的倉庫。
大部分編程語言都支持數組,比如C語言、C++、Java、PHP、JavaScript 等。

從形式上看,列表會將所有元素都放在一對中括號[ ]裏面,相鄰元素之間用逗號,分隔,如下所示:
[element1, element2, element3, ..., elementn]

格式中,element1 ~ elementn 表示列表中的元素,個數沒有限制,只要是 Python 支持的數據類型就可以。

從內容上看,列表可以存儲整數、小數、字符串、列表、元組等任何類型的數據,並且同一個列表中元素的類型也可以不同。比如說:
["http://c.biancheng.net/python/", 1, [2,3,4] , 3.0]

可以看到,列表中同時包含字符串、整數、列表、浮點數這些數據類型。
注意,在使用列表時,雖然可以將不同類型的數據放入到同一個列表中,但通常情況下不這麼做,同一列表中只放入同一類型的數據,這樣可以提高程序的可讀性。

另外,在其它 Python 教程中,經常用 list 代指列表,這是因爲列表的數據類型就是 list,通過 type() 函數就可以知道,例如:
>>> type( ["http://c.biancheng.net/python/", 1, [2,3,4] , 3.0] )
<class 'list'>

可以看到,它的數據類型爲 list,就表示它是一個列表。
Python創建列表
在 Python 中,創建列表的方法可分爲兩種,下面分別進行介紹。
1) 使用 [ ] 直接創建列表
使用[ ]創建列表後,一般使用=將它賦值給某個變量,具體格式如下:
listname = [element1 , element2 , element3 , ... , elementn]

其中,listname 表示變量名,element1 ~ elementn 表示列表元素。

例如,下面定義的列表都是合法的:
num = [1, 2, 3, 4, 5, 6, 7]
name = ["C語言中文網", "http://c.biancheng.net"]
program = ["C語言", "Python", "Java"]

另外,使用此方式創建列表時,列表中元素可以有多個,也可以一個都沒有,例如:
emptylist = [ ]

這表明,emptylist 是一個空列表。
2) 使用 list() 函數創建列表
除了使用[ ]創建列表外,Python 還提供了一個內置的函數 list(),使用它可以將其它數據類型轉換爲列表類型。例如:

#將字符串轉換成列表
list1 = list("hello")
print(list1)

#將元組轉換成列表
tuple1 = ('Python', 'Java', 'C++', 'JavaScript')
list2 = list(tuple1)
print(list2)

#將字典轉換成列表
dict1 = {'a':100, 'b':42, 'c':9}
list3 = list(dict1)
print(list3)

#將區間轉換成列表
range1 = range(1, 6)
list4 = list(range1)
print(list4)

#創建空列表
print(list())

運行結果:

['h', 'e', 'l', 'l', 'o']
['Python', 'Java', 'C++', 'JavaScript']
['a', 'b', 'c']
[1, 2, 3, 4, 5]
[]

訪問列表元素
列表是 Python 序列的一種,我們可以使用索引(Index)訪問列表中的某個元素(得到的是一個元素的值),也可以使用切片訪問列表中的一組元素(得到的是一個新的子列表)。

使用索引訪問列表元素的格式爲:
listname[i]

其中,listname 表示列表名字,i 表示索引值。列表的索引可以是正數,也可以是負數。

使用切片訪問列表元素的格式爲:
listname[start : end : step]

其中,listname 表示列表名字,start 表示起始索引,end 表示結束索引,step 表示步長。

url = list("http://c.biancheng.net/shell/")

#使用索引訪問列表中的某個元素
print(url[3])  #使用正數索引
print(url[-4])  #使用負數索引

#使用切片訪問列表中的一組元素
print(url[9: 18])  #使用正數切片
print(url[9: 18: 3])  #指定步長
print(url[-6: -1])  #使用負數切片

運行結果:
p
e
['b', 'i', 'a', 'n', 'c', 'h', 'e', 'n', 'g']
['b', 'n', 'e']
['s', 'h', 'e', 'l', 'l']

Python刪除列表
對於已經創建的列表,如果不再使用,可以使用del關鍵字將其刪除。

實際開發中並不經常使用 del 來刪除列表,因爲 Python 自帶的垃圾回收機制會自動銷燬無用的列表,即使開發者不手動刪除,Python 也會自動將其回收。

del 關鍵字的語法格式爲:
del listname

其中,listname 表示要刪除列表的名稱。

Python 刪除列表實例演示:

intlist = [1, 45, 8, 34]
print(intlist)
del intlist
print(intlist)

運行結果:
[1, 45, 8, 34]
Traceback (most recent call last):
    File "C:\Users\mozhiyan\Desktop\demo.py", line 4, in <module>
        print(intlist)
NameError: name 'intlist' is not defined

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章