13161216443

您所在位置: 首頁> 學習課程> python培訓班 | python中列表的操作都有哪些?

python培訓班 | python中列表的操作都有哪些?

發布百知教育 來源:學習課程 2019-11-19


01

列表的刪



1. pop():默認刪除最后一個值,也可以指定刪除下標為第幾個的元素,有返回值



l = [1, 2, 3, "a", "b"]d1 = l.pop()  d2 = l.pop(2)  # 刪除下標為2的元素,即刪除第3個元素
print(d1)      # b print(d2)      # 3print(l)       # [1, 2, 'a']


2. del:刪除指定位置的元素,也可以切片刪除,沒有返回值


l = [1, 2, 3, "a", "b"]
del l[1]print(l)    # [1, 3, 'a', 'b']
del l[:2]print(l)    # ['a', 'b']


3. remove:刪除指定的元素


l = [1, 2, 3, "a", "b"]
l.remove(1)print(l)    # [2, 3, 'a', 'b']
l.remove("a")print(l)    # [2, 3, 'b']


4. clear():直接清空整個列表



l = [1, 2, 3, "a", "b"]
l.clear()print(l)    # []


02 

列表的改



1. 通過下標號更改對應的值



l = [1, 2, 3, "a", "b"]
# 修改第2個元素的值l[1] = 666print(l)    # [1, 666, 3, 'a', 'b']



2. 如果是單使用切片,則只是把列表里索引號對應的元素刪除,再加入任何的東西,方法和列表的增中的 extend 類似



l = [1, 2, 3, "a""b"]
# 修改從第二個到第三個的值l[1:3] = [123, "abc"]print(l)      # [1, 123, 'abc', 'a', 'b']
# 修改從第二個到第三個的值(實際上對應多了一個值)l[1:3] = [777, 888, 999]print(l)      # [1, 777, 888, 999, 'a', 'b']
# 修改從第二個到第三個的值(實際上對應少了一個值)l[1:3] = [555]print(l)      # [1, 555, 999, 'a', 'b']
# 注意與上面的區別l[1:3] = 555  # 報錯,提示『只能分配一個可迭代對象』

# 如果切片加了步長,則替換的個數必須一樣,否則也會報錯l = [1, 2, 3, "a", "b"]
l[1::2] = [11, 22, 33]print(l)      # 報錯



03 

列表的其他操作



1. count():統計某個元素在列表中出現的次數



l = ["q","w","q","r","t","y"]print(l.count("q"))    # 2

# 這里注意?。薄『汀rue 是一樣的t = (1, 3, True)print(t.count(1))      # 2print(t.count(True))   # 2


2. index():從列表中找出某個值第一個匹配項的索引位置





































# 列表和字符串不同,不能用 find(),只能用 index(),找不到就報錯l = ["q","w","q","r","t","y"]print(l.index("q"))    # 0print(l.index("abc"))  # 報錯

######## 使用 index() 的小陷阱 ######### 列出每個元素及其對應的索引號l = ["q","w","q","r","t","y"]
# 錯誤方法:for i in l:    print(i, l.index(i))
# 運行結果:q 0w 1q 0r 3t 4y 5# 原因解析:列表中有相同元素時,使用 index 的話# 找到相同的元素返回的還是第一次找到該元素的索引號
# 正確方法:動態獲取列表的元素for i in range(0, len(l)):    print(l[i], i) # 運行結果:q 0w 1q 2r 3t 4y 5


3. sort():在原位置對列表進行排序及反向排序


l = [3, 1, 4, 2, 5]l.sort()print(l)    # [1, 2, 3, 4, 5]
# 反向操作l = [3, 1, 4, 2, 5]l.sort(reverse=True)print(l)    # [5, 4, 3, 2, 1]


4. reverse():將列表中的元素反向存放


l = [3, 1, 4, 2, 5]

l.reverse()

print(l)    # [5, 2, 4, 1, 3]


5. 新版本的 Python 中兩個列表是可以相加相乘的,形成一個新的列表









l1 = [1, 2]

l2 = [3, 4, 5]

l3 = l1 + l2

print(l3)    # [1, 2, 3, 4, 5]

l1 = [1, 2, 3]

l2 = l1 * 3

print(l2)    # [1, 2, 3, 1, 2, 3, 1, 2, 3]



6. 循環一個列表時的陷阱


######## 把列表中索引號為奇數的元素刪掉 ########l = [11, 22, 33, 44, 55]
# 錯誤方法:for i in range(len(l)):    if i % 2 == 1:        l.pop(i) print(l)    # [11, 33, 44]
# 原因解析:循環一個列表時,最好不要改變列表的長度# 因為這樣會影響列表后面元素的索引位置

# 正確方法一:l = [11, 22, 33, 44, 55]new_l = []
for i in range(len(l)):    if i % 2 == 0:        new_l.append(l[i]) l = new_lprint(l)          # [11, 33, 55]

# 正確方法二:倒敘法——從最后一個開始按條件循環刪除列表元素l = [11, 22, 33, 44, 55]
for i in range(len(l)-1, -1, -1):    if i % 2 == 1:        l.pop(i) print(l)          # [11, 33, 55]

# 正確方法三:直接使用切片l = [11, 22, 33, 44, 55]print(l[0::2])    # [11, 33, 55]


注釋:本文來自公眾號python實用筆記


python培訓班:http://www.akpsimsu.com/python2019




上一篇:python培訓班 | Python到底還能“造?!倍嗌俪绦騿T?

下一篇:應屆生去公司找個Java程序員的職位需要什么技能?

相關推薦

www.akpsimsu.com

有位老師想和您聊一聊

關閉

立即申請