Python中最基本的數(shù)據(jù)結(jié)構(gòu)是列表。一個(gè)列表的每個(gè)元素被分配一個(gè)數(shù)字來(lái)表示它的位置或索引。 第一個(gè)索引為0,第二個(gè)索引為1,依此類推。
Python有六種內(nèi)置的序列類型,但最常見(jiàn)的是列表和元組,將在本教程中看到。
可以在列表上執(zhí)行各種類型操作。這些操作包括索引,切片,添加,乘法和檢查成員身份。此外,Python還具有內(nèi)置函數(shù),用于查找序列的長(zhǎng)度和查找其最大和最小的元素。
列表是Python中最通用的數(shù)據(jù)類型,可以寫成方括號(hào)之間的逗號(hào)分隔值(項(xiàng))列表。列表中的項(xiàng)目不必是相同的類型,這一點(diǎn)和C語(yǔ)言中數(shù)組有差別。
創(chuàng)建列表就在方括號(hào)之間放置不同的逗號(hào)分隔值。 例如 -
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];
類似于字符串索引,列表索引從0開(kāi)始,列表可以被切片,連接等等。
要訪問(wèn)列表中的值,使用方括號(hào)進(jìn)行切片以及索引或索引,以獲取該索引處可用的值。例如 -
#!/usr/bin/python3
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5, 6, 7 ]
print ("list1[0]: ", list1[0])
print ("list2[1:5]: ", list2[1:5])
當(dāng)執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果 -
list1[0]: physics
list2[1:5]: [2, 3, 4, 5]
可以通過(guò)在分配運(yùn)算符左側(cè)給出切片來(lái)更新列表的單個(gè)或多個(gè)元素,可以使用append()方法添加到列表中的元素。例如 -
#!/usr/bin/python3
list = ['physics', 'chemistry', 1997, 2000]
print ("Value available at index 2 : ", list[2])
list[2] = 2001
print ("New value available at index 2 : ", list[2])
注 - 在后續(xù)章節(jié)中討論了
append()方法。
當(dāng)執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果 -
Value available at index 2 : 1997
New value available at index 2 : 2001
要?jiǎng)h除列表元素,并且如果確切知道要?jiǎng)h除哪些元素可以使用del語(yǔ)句。如果不知道要?jiǎng)h除哪些項(xiàng)目,可以使用remove()方法。 例如 -
#!/usr/bin/python3
list = ['physics', 'chemistry', 1997, 2000]
print (list)
del list[2]
print ("After deleting value at index 2 : ", list)
當(dāng)執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果 -
['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 : ['physics', 'chemistry', 2000]
注 -
remove()方法將在后續(xù)章節(jié)中討論。
列表響應(yīng)+和*運(yùn)算符,這與字符串十分類似; 它們也意味著這里的連接和重復(fù),除了結(jié)果是新的列表,而不是字符串。
事實(shí)上,列表響應(yīng)上一章中,在字符串上使用的所有常規(guī)序列操作。
| Python表達(dá)式 | 結(jié)果 | 描述 |
|---|---|---|
len([1, 2, 3]) |
3 | 列表的長(zhǎng)度 |
[1, 2, 3] + [4, 5, 6] |
[1, 2, 3, 4, 5, 6] |
聯(lián)接 |
['Hi!'] * 4 |
['Hi!', 'Hi!', 'Hi!', 'Hi!'] |
重復(fù) |
3 in [1, 2, 3] |
True |
|
for x in [1,2,3] : print (x,end = ' ') |
1 2 3 |
迭代 |
由于列表是序列,索引和切片的工作方式與列表一樣,對(duì)于字符串。
假設(shè)以下輸入 -
L = ['C++'', 'Java', 'Python']
| Python表達(dá)式 | 結(jié)果 | 描述 |
|---|---|---|
L[2] |
'Python' |
偏移量,從零開(kāi)始 |
L[-2] |
'Java' |
負(fù)數(shù):從右到右 |
L[1:] |
['Java', 'Python'] |
切片提取部分 |
Python包括以下列表函數(shù)功能 -
| 編號(hào) | 方法 | 描述 |
|---|---|---|
| 1 | cmp(list1, list2) | 在Python 3中不再可用。 |
| 2 | len(list) | 給出列表的總長(zhǎng)度。 |
| 3 | max(list) | 從列表中返回最大值的項(xiàng)目。 |
| 4 | min(list) | 從列表中返回最小值的項(xiàng)目。 |
| 5 | list(seq) | 將元組轉(zhuǎn)換為列表。 |
Python包括以下列表方法 -
| 編號(hào) | 方法 | 描述 |
|---|---|---|
| 1 | list.append(obj) | 將對(duì)象obj追加到列表中 |
| 2 | list.count(obj) | 返回列表中出現(xiàn)多少次obj的計(jì)數(shù) |
| 3 | list.extend(seq) | 返回列表中出現(xiàn)多少次obj的計(jì)數(shù) |
| 4 | list.extend(seq) | 將seq的內(nèi)容附加到列表中 |
| 5 | list.insert(index, obj) | 將對(duì)象obj插入到偏移索引的列表中 |
| 6 | list.pop(obj = list[-1]) | 從列表中刪除并返回最后一個(gè)對(duì)象或obj |
| 7 | list.remove(obj) | 從列表中刪除對(duì)象obj |
| 8 | list.reverse() | 反轉(zhuǎn)列表中的對(duì)象 |
| 9 | list.sort([func]) | 排序列表的對(duì)象,如果給出,則使用比較函數(shù)func來(lái)排序 |