一、簡介
列表(list)是python以及其他語言中最常用到的資料結構之一。python使用使用中括號 [ ] 來解析列表。列表是可變的(mutable)——可以改變列表的內容。
二、基本的列表操作
列表可以使用所有適用於序列的標準操作,例如索引、分片、連線和乘法。本文介紹一些可以改變列表的方法。
1. list 函式
通過 list(seq) 函式把乙個序列型別轉換成乙個列表。
>>> list('hello')
['h', 'e', 'l', 'l', 'o']list 函式使用於所有型別的序列,而不只是字串。
2. 改變列表:元素賦值
使用索引標記來為某個特定的、位置明確的元素賦值。
>>> x = [1, 1, 1]
>>> x[1] = 2
>>> x
[1, 2, 1]不能為乙個位置不存在的元素進行賦值。
3. 刪除元素
從列表中刪除元素也很容易:使用 del 語句來實現。
>>> names = ['alice', 'beth', 'cecil', 'dee-dee', 'earl']
>>> del names[2]
>>> names
['alice', 'beth', 'dee-dee', 'earl']除了刪除列表中的元素,del 語句還能用於刪除其他元素。
4. 分片賦值
>>> name = list('perl')
>>> name
['p', 'e', 'r', 'l']
>>> name[2:] = list('ar')
>>> name
['p', 'e', 'a', 'r']在使用分片賦值時,可以使用與原序列不等長的序列將分片替換:
>>> name = list('perl')
>>> name[1:] = list('ython')
>>> name
['p', 'y', 't', 'h', 'o', 'n']分片賦值語句可以在不需要替換任何原有元素的情況下插入新的元素。
>>> numbers = [1, 5]
>>> numbers[1:1] = [2, 3, 4]
>>> numbers
[1, 2, 3, 4, 5]通過分片賦值來刪除元素也是可行的。
>>> numbers
[1, 2, 3, 4, 5]
>>> numbers[1:4] =
>>> numbers
[1, 5]三、列表方法
方法是乙個與某些物件有緊密聯絡的函式。一般,方法可以這樣進行呼叫:
物件.方法(引數)
除了物件被放置到方法名之前,並且兩者之間用乙個點號隔開。
1. append
append方法用於在列表末尾追加新的物件:
>>> lst = [1, 2, 3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]append方法和其他一些方法類似,只是在恰當位置修改原來的列表。這意味著,它不是簡單地返回乙個修改過的新列表——而是直接修改原來的列表。
2. count
count 方法統計某個元素在列表**現的次數:
>>> ['to', 'be', 'or', 'not', 'to', 'be'].count('to')
2>>> x = [[1,2], 1, 1, [2, 1, [1, 2]]]
>>> x.count(1)
2>>> x.count([1,2])
13. extend
extend 方法可以在列表的末尾一次性追加另乙個序列中的多個值。
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]extend 方法修改了被擴充套件的列表,而原始的連線操作(+)則不然,它會返回乙個全新的列表。
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
>>>
>>> a + b
[1, 2, 3, 4, 5, 6, 4, 5, 6]
>>> a
[1, 2, 3, 4, 5, 6]4. index
index 方法用於從列表中找出某個值第乙個匹配項的索引位置:
>>> knights = ['we', 'are', 'the', 'knights', 'who', 'say', 'ni']
>>> knights.index('who')
4當搜尋不存在的值時,就會引發乙個異常。
5. insert
insert 方法用於將物件插入到列表中:
>>> numbers = [1, 2, 3, 5, 6, 7]
>>> numbers.insert(3, 'four')
>>> numbers
[1, 2, 3, 'four', 5, 6, 7]6. pop
pop 方法會移除列表中的乙個元素(預設是最後乙個),並且返回該元素的值:
>>> x = [1, 2, 3]
>>> x.pop()
3>>> x
[1, 2]
>>> x.pop(0)
1>>> x
[2]pop方法是唯一乙個即能修改列表又返回元素值(除了none)的列表方法。
7. remove
remove 方法用於移除列表中某個值的第乙個匹配項:
>>> x = ['to', 'be', 'or', 'not', 'to', 'be']
>>> x.remove('be')
>>> x
['to', 'or', 'not', 'to', 'be']
>>> x.remove('bee')
traceback (most recent call last):
file "", line 1, in
valueerror: list.remove(x): x not in list只有第一次出現的值被移除,而不存在與列表中的值是不會移除的。
remove 是乙個沒有返回值的原位置改變方法。它修改了列表卻沒有返回值。
8. reverse
reverse 方法將列表中的元素反向存放。
>>> x = [1, 2, 3]
>>> x.reverse()
>>> x
[3, 2, 1]該方法改變了列表但不返回值。
9. sort
sort 方法用於在原位置對列表進行排序。
>>> x = [4, 6, 2, 1, 7, 9]
>>> x.sort()
>>> x
[1, 2, 4, 6, 7, 9]sort 方法修改了 x 卻返回了空值。
四、元組:不可變序列
建立元組的語法很簡單:如果你用逗號分隔了一些值,那麼你就自動建立了元組。
>>> 1, 2, 3
(1, 2, 3)元組也是(大部分時候是)通過圓括號括起來的:
>>> (1,2,3)
(1, 2, 3) 實現包括乙個值的元組有些奇特——必須加個逗號:
>>> 42,
(42,)
>>> (42,)
(42,) tuple函式的功能與list函式基本上是一樣的:以乙個序列作為引數並把它轉化為元組。
>>> tuple([1, 2, 3])
(1, 2, 3)
除了建立元組和訪問元組元組之外,也沒有太多其他操作,可以參考其他型別的序列來實現。
元組的意義:元組可以在對映(和集合的成員)中當作鍵使用——而列表則不行;元組作為很多內建函式和方法的返回值存在。
python 列表 元組
列表非常適合利用順序和位置定義某乙個元素,尤其是當元素的順序或內容經常發生改變的時候。與字串不同,列表中元素的值是可以修改的。我們可以直接對列表中進行新增新元素 刪除元素 或覆蓋已有的元素。不同元素 與列表類似,元組也是由任意型別元素組成的序列。與列表不同的是,元組是不可改變,這意味著一旦元組被定義...
python列表 元組
列表是python中最基本的資料結構。列表中的每個元素都分配乙個數字 它的位置,或索引,第乙個索引是0,第二個索引是1,依此類推。列表是最常用的python資料型別,它可以作為乙個方括號內的逗號分隔值出現。列表的資料項不需要具有相同的型別 建立乙個列表,只要把逗號分隔的不同的資料項使用方括號括起來即...
Python列表 元組
序列是python中最基本的最重要的資料結構,python內建的6種序列型別有list,tuple,string,unicode,buffer,xrange 序列中的每個元素都分配乙個數字 它的位置,或索引,第乙個索引是0,第二個索引是1,依此類推。並且序列都可以進行索引 檢查成員 切片 加 乘等操...