列表是python中的一個序列。list的字典含義是“連續寫或打印的許多連接項目或名稱”。它的字典含義和在編寫程序時在Python中的用法沒有太大區別。我們經常使用列表,無論是在日常生活中,還是在程序中。每當我們要根據某些條件對某些項目進行分組時,我們都會列出清單。Python列表提供了相同的功能,您可以靈活地對每個元素進行隨機訪問,修改每個元素,從中添加或刪除元素來對項目進行分組。因此,讓我們從創建列表開始。
list1 = [1,2,3,4,5]>>> list1
[1, 2, 3, 4, 5]>>> type(list1)
type()是python中的一個函數,它返回變量的對象類型。
在python中創建列表非常簡單。您可以通過2種方式來實現。第一個是將元素括在方括號中,如上例所示。其他正在使用list()函數。
>>> list1 = list([1,2,3,4,5])>>> list1
[1, 2, 3, 4, 5]>>> type(list1)
關于列表的一件有趣的事情是,它們將對對象或元素的引用存儲在其中。因此,在將列表重新分配給另一個變量時,python只會更改引用,而不會創建新的列表對象。
# id() function returns the object id.>>> id(list1)4426491160>>> list2 = list1>>> id(list2)4426491160
我們可以看到兩個變量代表相同的對象。這確實加快了程序的執行速度。列表是全局變量,這意味著當您聲明列表并將其作為參數傳遞給函數時,而不是將其復制并傳遞給函數時,python會將對列表的引用傳遞給它。
訪問元素
Python為從0開始的每個列表元素分配一個索引。因此,如果要訪問列表中的特定元素,可以通過其索引訪問它。但是為此,您應該知道元素的索引。即使您不知道,也不必擔心有一種解決方案。但是,現在讓我們嘗試按其索引訪問元素。
>>> list1
[1, 2, 3, 4, 5]>>> print(list1[0])1>>> print(list1[2])3>>> print(list1[1])2
如果傳遞的索引與列表不相關或該索引中沒有元素,則該列表將引發IndexError。
>>> list1
[1, 2, 3, 4, 5]>>> print(list1[9])
Traceback (most recent call last):
File "", line 1, in
IndexError: list index out of range
>>>
在某些情況下,您知道要訪問的元素,但不知道其索引。在這種情況下,您可以在相應列表中搜索該元素,然后搜索(如果有列表,則使用index函數)將返回該元素的索引。
>>> list1
[1, 2, 3, 4, 5]>>> list1.index(2)1 // index of 2
List的可變行為。
列表數據類型屬于“可變數據結構”類別。可變意味著您甚至可以在定義數據結構后對其進行任何更改。那么,您可以對列表進行哪些更改?您可以更新元素,添加新元素和刪除元素。讓我們看看。
更新列表元素
>>> list1
[1, 2, 3, 4, 5]>>> list1[0] = 2>>> list1
[2, 2, 3, 4, 5]
刪除列表元素
>>> list1
[2, 2, 3, 4, 5]>>> list1.remove(5) #remove element 5>>> list1
[2, 2, 3, 4]
更新和刪除元素既簡單又直接。現在,當涉及到將元素添加到列表時,有很多方法可以做到這一點。所有這一切都取決于您要在何處添加元素。其中之一是使用insert()函數。
插入元素
list.insert(index,value)帶有2個參數。第一個是要添加元素的位置,第二個是元素或值本身
>>> list1
[2, 2, 3, 4]>>> list1.insert(4,89)>>> list1
[2, 2, 3, 4, 89] #inserting 89 at 4th index.
如果您提供的索引比列表大小大得多怎么辦?好吧,在這種情況下,列表會將元素添加到其最后一個索引。
>>> list1
[2, 2, 3, 4, 89]>>> list1.insert(100000,100)>>> list1
[2, 2, 3, 4, 89, 100]
除了插入之外,還可以使用append()將元素添加到列表的末尾。
>>> list1 = [2, 2, 3, 4, 89, 100]>>> list1.append(67)>>> list1
[2, 2, 3, 4, 89, 100, 67]
我們已經看到了帶有列表的基本CRUD操作。該列表具有許多內置功能。我們不會涵蓋所有這些內容。
不可變數據結構列表
我們可以有一個元組列表嗎?元組是不可變的對象,列表是可變的對象。那么,如果我們聲明一個元組列表,它將變得可變嗎?讓我們檢查一下。
>>> list1.insert(6,("element1","element2"))>>> list1
[2, 2, 3, 4, 89, 100, ('element1', 'element2')]>>> type(list1)
>>> type(list1[6])
>>> list1[6][0]=3
Traceback (most recent call last):
File "", line 1, in
TypeError: 'tuple' object does not support item assignment
因此,即使將不可變的對象存儲在列表中,python也不會更改對象的屬性。
列表可以具有任何數據類型作為其成員,無論它是字典,元組,字符串還是其他列表。這是程序員如此頻繁使用列表的原因之一。
有更多關于列表的知識。一旦開始使用列表,您將學到這一點。但是,基本知識對于學習高級用法總是必不可少的。我已經在這里介紹了基本原理。如果您了解這些CRUD操作,則可以學習列表的高級用法。想了解更多關于python的信息,請繼續關注中培偉業。