Python 學習筆記5 變量-列表

列表是python經常使用的一種變量。 是由一些列按照特定順序排列的元素組成的。你能夠建立包含字母表中的全部字母,數字。能夠將任何東西都加入到列表中。python

一般狀況下,列表中都包含多個元素,因此建議變量的名稱以複數的形式來表示,好比 foods, names, cars。app

在Python中,咱們用方括號 [] 來表示列表,使用逗號來進行元素分隔:ide

names = ["Ralf", "Rachel", "clark"] print(names) # 輸出: ['Ralf', 'Rachel', 'clark']

 

和字符串類型變量相相似,咱們可使用索引來訪問list中的變量,索引從0 開始計數: 函數

names = ['Ralf', 'Rachel', 'clark'] print(names[0]) print(names[2]) print(names[-1]) print(names[3]) # 輸出: ralf # 輸出: clark # 輸出: clark # 輸出: IndexError: list index out of range

 

大多數定義的列表都是動態的,這意味着列表建立後,將隨着程序的運行增減元素。spa

能夠根據索引定位直接修改列表元素:指針

names = ['Ralf', 'Rachel', 'clark'] print(names[1]) names[1] = 'Terry'
print(names[1]) # 輸出: Rachel # 輸出: Terry

 

添加元素到list中,咱們可使用list的內置函數來實現:code

names = ['Ralf', 'Rachel', 'clark'] """ 在List末尾插入一個數值""" names.append('Terry') print(names) # 輸出: ['Ralf', 'Rachel', 'clark', 'Terry']

""" 在首位置插入一個數值""" names.insert(0, 'LEONA') print(names) # 輸出: ['LEONA', 'Ralf', 'Rachel', 'clark', 'Terry']

 

刪除列表中的元素主要有如下幾種方法: del,pop(), removeblog

names = ['Ralf', 'Rachel', 'Clark', 'Leona', 'Terry'] """ 刪除List中的第二個值 Rachel"""
del names[1] print(names) # 輸出: ['Ralf', 'Clark', 'Leona', 'Terry']

""" pop()會從列表中取出最後的一個值,並將該元素從list中刪除""" pop_name = names.pop() print(pop_name) print(names) # 輸出: # Terry # ['Ralf', 'Clark', 'Leona']

""" pop()也能夠從指定位置處取值和刪除元素""" pop_name = names.pop(2) print(pop_name) print(names) # 輸出: # Leona # ['Ralf', 'Clark']

""" 使用remove()根據值來刪除元素""" names.remove('Clark') print(names) # 輸出:['Ralf']

""" 注意remove()只會刪除一個元素,若是list存在重複的值,那麼只會刪除第一個匹配的值""" names2 = ['Ralf', 'Clark', 'Clark', 'Leona', 'Terry'] names2.remove('Clark') print(names2) # 輸出:['Ralf', 'Clark', 'Leona', 'Terry']

 

 

列表排序,咱們能夠永久或者臨時性的對list進行排序,使用sort和sorted方法:排序

names = ['Ralf', 'Rachel', 'Clark', 'Leona', 'Terry'] """ 使用sorted()函數臨時排序list中的元素"""
print(sorted(names)) print(sorted(names, reverse = True)) print(names) #輸出: #['Clark', 'Leona', 'Rachel', 'Ralf', 'Terry'] #['Terry', 'Ralf', 'Rachel', 'Leona', 'Clark'] #['Ralf', 'Rachel', 'Clark', 'Leona', 'Terry']

"""使用list內置函數sort()實現元素的排序的永久化"""
print(names) names.sort() print(names) #輸出: #['Ralf', 'Rachel', 'Clark', 'Leona', 'Terry'] #['Clark', 'Leona', 'Rachel', 'Ralf', 'Terry']

 

肯定列表的長度,咱們可使用len()函數來實現索引

names = ['Ralf', 'Rachel', 'Clark', 'Leona', 'Terry'] """ 使用len()函數來獲得list中的元素的個數"""
print(len(names)) #輸出: 5

 遍歷整個列表,咱們可使用循環的形式遍歷整個列表中的元素:

 

""" 使用For循環遍歷整個List中的元素"""
for name in names: print(name) #輸出: Ralf #Rachel #Clark #Leona #Terry

 

列表切片, List和string相相似,都支持索引和切片方式的取值。咱們可使用[start:end:step]的方式對列表中的元素進行讀取操做。注意start從0開始,第end個元素不包含在操做中。

names = ['Ralf', 'Rachel', 'Clark', 'Leona', 'Terry'] """取出list中下標1到2的元素"""
print(names[1:3]) #輸出: ['Rachel', 'Clark']

"""取出list中下表從開始到3的元素"""
print(names[:4]) #輸出: ['Ralf', 'Rachel', 'Clark', 'Leona']


"""從下標0開始每格兩個取一次值"""
print(names[::2]) #輸出: ['Ralf', 'Clark', 'Terry']

 

List列表也支持複數的取值,表示從後往前取值:

names = ['Ralf', 'Rachel', 'Clark', 'Leona', 'Terry'] """取出list中倒數第三個到末尾的全部元素"""
print(names[-3:]) #輸出: ['Clark', 'Leona', 'Terry']

"""從List末尾取出全部元素"""
print(names[::-1]) #輸出: ['Terry', 'Leona', 'Clark', 'Rachel', 'Ralf']


"""取出從下標0開始到倒數第三個元素前的全部元素"""
print(names[:-3:]) #輸出: ['Ralf', 'Rachel']

 

注意: list切片返回的結果任然是一個列表(List)。

列表的複製。咱們嘗試使用賦值的形式複製一張新的列表,發現其不能正確的工做:

names1 = ['Ralf', 'Rachel', 'Clark', 'Leona', 'Terry'] names2 = names1 names1.append('Heidern') print(names1) print(names2) #輸出:
['Ralf', 'Rachel', 'Clark', 'Leona', 'Terry', 'Heidern'] ['Ralf', 'Rachel', 'Clark', 'Leona', 'Terry', 'Heidern']

 

咱們發現,兩個list發生了相同的變化。這是由變量特性決定, python是一種地址指向。names定義了變量的值後,這些數值存儲到內存中,names做爲變量,其指針指向了存儲這些值得地址。而names2指向了names1指向的地址。所以兩個實際上指向的存儲地址是同樣的。

咱們若是想要複製列表,須要使用切片或者遍歷的方式來實現:

names1 = ['Ralf', 'Rachel', 'Clark', 'Leona', 'Terry'] names2 = names1[:] names1.append('Heidern') print(names1) print(names2) #輸出:
['Ralf', 'Rachel', 'Clark', 'Leona', 'Terry', 'Heidern'] ['Ralf', 'Rachel', 'Clark', 'Leona', 'Terry']
相關文章
相關標籤/搜索