Python自動化運維開發----基礎(五)切片應用 && 列表函數

1.切片的應用

(1)複製列表: 直接賦值新的列表和用切片得到的新列表的區別?

使用直接賦值新列表的方式並且查看在內存中的位置,這種方式兩個列表在內存中的位置是一樣,一個列表改變另一個也會跟着改變

>>> a = [1, 2, 3]
>>> b = a
>>> id(a)
139827490542536
>>> id(b)
139827490542536
>>> a[0] = 0
>>> b[0]
0
>>> b
[0, 2, 3]

用切片得到的列表是一個全新的列表,不會跟着之前的列表改變,列表在內存中的位置也不會改變

>>> c = a[:]
>>> c
[0, 2, 3]
>>> a
[0, 2, 3]
>>> a[0] = 1
>>> a
[1, 2, 3]
>>> c
[0, 2, 3]
>>> id(a)
139827490542536
>>> id(c)
139827490544840

(2)反轉list

讓list反序排列  step = -1時 list就會反轉

>>> a
[1, 2, 3]
>>> a[::-1]
[3, 2, 1]

(3)獲取索引編號都是偶數的列表元素

>>> a
[1, 2, 3]
>>> a[::2]
[1, 3]

(4)獲取索引編號都是奇數的列表元素

>>> a
[1, 2, 3]
>>> a[1::2]
[2]

(5)使用切片對列表進行增刪改

通過切片使列表變成一個空列表

>>> a
[1, 2, 3, 1, 2, 4]
>>> a[:] = []
>>> a
[]

通過切片改變列表元素的值

>>> a
[1, 2, 3, 5, 6]
>>> a[2:3]
[3]
>>> a[2:3] = [4,1]
>>> a
[1, 2, 4, 1, 5, 6]

通過切片刪除列表的元素

>>> a
[1, 2, 4, 1, 5, 6]
>>> a[2:5] = []
>>> a
[1, 2, 6]

2.切片的函數

查看切片的函數有哪些?

dir(list)

查看函數的使用幫助?

help(list.函數名)

(1)append 函數  做列表追加

>>> a
[1, 2, 6]
>>> a.append(5)
>>> a
[1, 2, 6, 5]

(2)clear函數  情況列表的元素

>>> a
[1, 2, 6, 5]
>>> a.clear()
>>> a
[]

a.clear()  和 a = [] 的區別?

在內存中的位置改變了 

>>> a
[1, 2, 5, 6]
>>> id(a)
139827490570312
>>> a = []
>>> id(a)
139827490545224

(3)copy 函數   複製一個列表

>>> a = [1, 2]
>>> b = a.copy()
>>> b
[1, 2]
>>> id(a)
139827490570312
>>> id(b)
139827490545480

(4)count 函數  統計value出現的次數

>>> a
[1, 2, 1, 2]
>>> a.count(1)
2
>>> a.count(2)
2

(5)extend 函數 擴展元素

>>> a
[1, 2, 1, 2]
>>> a.extend('456')
>>> a
[1, 2, 1, 2, '4', '5', '6']

extend 函數和 append 函數的區別?

>>> a.extend('456')
>>> a
[1, 2, 1, 2, '4', '5', '6']
>>> a.append(456)
>>> a
[1, 2, 1, 2, '4', '5', '6', 456]

extend 是把要添加的東西拆分成一個個元素添加在後邊,append 是把要添加的作爲一個整體作爲一個整體

(6)index 函數  用來獲取元素索引編號

>>> a
[1, 2, 1]
>>> a.index(1)
0
>>> a.index(2)
1

(7)insert 函數  插入元素 (在指定的索引編號之前插入)

>>> a
[1, 2, 1]
>>> a.insert(1,3)
>>> a
[1, 3, 2, 1]

(8)pop 函數  移除並返回元素值(默認是刪除最後一個元素,可以指定刪除的元素,需要指定索引編號)

a.pop(索引編號) 不寫索引編號 默認是刪除最後一個

>>> a
[1, 3, 2, 1]
>>> a.pop()
1
>>> a
[1, 3, 2]

(9)remove 函數 移除第一個匹配到的value

>>> a
[1, 3, 2, 1]
>>> a.remove(1)
>>> a
[3, 2, 1]

(10)reverse 函數  反轉

>>> a
[3, 2, 1]
>>> a.reverse()
>>> a
[1, 2, 3]

reverse 函數和 切片反轉的區別?

reverse 改變了原來的列表   切片的反轉沒有改變原來的list

(11)sort 函數  排序

>>> a[2:3] = [6,5]
>>> a
[1, 2, 6, 5]
>>> a.sort()
>>> a
[1, 2, 5, 6]


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