Python基礎之列表(2)

上節講到列表的基本用法,這節具體講下操作列表的函數用法。

1.添加元素

>>>x = [1,2,3]
>>>id(x)                                  #查看對象的內存地址
50159368

>>>x.append(4)                            #在尾部追加元素
>>>x
[1,2,3,4]

>>>x.insert(2,0)                          #在指定位置插入元素,前一個參數是位置
>>>x
[1,2,0,3,4]

>>>x.extend([5,6,7])                      #在尾部追加多個元素
>>>x
[1,2,0,3,4,5,6,7]

>>>id(x)                                  #列表在內存中的地址不變
50159368

#另外用 + 和 * 也可以向列表中添加元素,不過返回的是新列表,id發生改變
>>>x = [1,2,3]
>>>id(x) 
50231246

>>>x = x+[4]
>>>x
[1,2,3,4]

>>>x = x * 2
>>>x
[1,2,3,4,1,2,3,4]

>>>id(x)
50221243

2.下面說說三種刪除元素的方法

>>>x = [1,2,3,4,5,6,7]
>>>x.pop()                            #取出並返回最後一個元素
7

>>>x.pop(0)                           #取出並返回第一個元素
>>>x
1

>>>x.clear()                          #刪除所有元素
>>>x
[]

>>>x = [1,2,1,1,2]
>>>x.remove(2)                        #刪除首個值爲 2 的元素
>>>x
[1,1,1,2]

>>>del x[3]                           #刪除指定位置的元素
>>>x
[1,1,1]

 注:在列表中間位置插入或刪除元素會影響後面所有元素的下標,要盡力避免在列表中間位置進行插入和刪除操作。

3.count()、index()函數

列表方法count()用於返回列表中指定元素出現的次數,index()用於返回指定元素在列表中首次出現的位置,如果該元素不在則拋出異常。

>>>x = [1,2,2,3,3,3,4,4,4,4]
>>>x.count(3)                           #列表中元素3的個數
3

>>>x.index(2)                           #元素2在列表中首次出現的位置(索引)
1

>>>x.index(4)
6

>>>5 in x                              #判斷元素 5 是否在列表 x 中
False 

4.sort()、reverse() 和sorted()、reversed()

sort()和reverse()對列表進行的排序是原地排序,就是所排序後的列表代替的原列表。

>>>x = list(range(11))
>>>import random
>>>random.shuffle(x)                   #隨機亂序
>>>x
[0,8,4,2,3,7,9,5,1,6,10]

>>>x.reverse()                         #逆序
>>>x
[10,6,1,5,9,7,3,2,4,8,0]

>>>x.sort()                            #順序
>>>x
[0,1,2,3,4,5,6,7,8,9,10]

>>>x.sort(key=str)                     #轉換成字符串後的大小排序
>>>x
[0,1,10,2,3,4,5,6,7,8,9]

而sorted()和reversed()這兩個函數會得到新列表而不會對原列表做任何修改

>>>import random
>>>x = list(range(11))
>>>random.shuffle(x)
>>>x
[6, 2, 0, 1, 7, 9, 4, 3, 5, 10, 8]

>>>sorted(x,key=str)
[0,1,10,2,3,4,5,6,7,8,9]

>>>list(reversed(x))
[9,8,7,6,5,4,3,2,10,1,0]

>>>x                                         #原列表 x 沒有改變
[6, 2, 0, 1, 7, 9, 4, 3, 5, 10, 8]

 

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