正式的Python專欄第27篇,同學站住,別錯過這個從0開始的文章!
上篇學委對照tuple文章的操作一一羅列了list串列資料的相應的操作,
這次我們繼續把list的其他操作看完,
list比tuple多了這些操作支持
前面學委提到tuple(元組)就是焊死了的一串串車廂,list支持元素編輯,明顯靈活多了,
我們先看看洗掉操作,python中的list就支持了3中洗掉元素的操作,
假設我們定義一個串列物件 list_obj, 那么我們可以執行下面任意一個操作,進行元素洗掉,
del list_obj[下標]
list_obj.remove(某個元素值)
list_obj.pop(下標) #回傳元素值
好,我們看看下面完整代碼:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/31 10:36 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學委
# @XueWeiTag: CodingDemo
# @File : list_demo4.py
# @Project : hello
# 洗掉串列元素
mylist = [1, 0, 2, 4, "雷學委"]
print("mylist:", mylist)
del mylist[0]
print("after remove first element, mylist:", mylist)
mylist.remove("雷學委")
print("after remove first element, mylist:", mylist)
removed_value = mylist.pop(1) # 移除并回傳的元素值
print("after remove first element, mylist:", mylist)
print("removed value:", removed_value)
效果如下:

特別需要注意的是:洗掉元素不能超過list的下標范圍,否則報錯!
除了洗掉,list怎么添加/擴充元素呢?
先不說修改的,list也支持定位查找元素,我們先看看,
list_obj.index(某個元素值) #通過某個元素值定位到第一個匹配的下標,從0位置開始找,
假設list_obj = [3, 2, 1] 那么list_obj.index(2) 則是什么?
答案是:1,
好,我們繼續說插入新元素,
# python中的list支持下面兩種方式追加元素
list_obj.insert(指定下標, 元素)
list_obj.append(元素) #末尾追元素
那么一次性追加多個,或者直接擴充某個串列到現有串列呢?
我們找到了extend函式,使用list_obj.extend(補充串列) 就能把list_obj直接擴充了,效果是依次追加補充串列的元素到末尾,
說這么多操作,我們直接復制運行下面的代碼看看:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/31 10:36 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學委
# @XueWeiTag: CodingDemo
# @File : list_demo5.py
# @Project : hello
# 串列的其他函式
mylist = [6, 6, 6]
print("mylist:", mylist)
mylist.append("雷學委")
print("mylist:", mylist)
print("串列多少個6?:", mylist.count(6))
print("第一個6的位置下標?:", mylist.index(6))
mylist.insert(2, 1024)
print("第一個1024的位置下標?:", mylist.index(1024))
last = mylist.pop() #洗掉操作前面說過了,這幾舉例一個,
print("最后的元素是:",last)
print("mylist:", mylist)
# 直接追加新串列
mylist.extend(mylist) # 相當于mylist = mylist * 2
print("mylist:", mylist)
mylist.extend(['持續學習', '持續開發'])
print("mylist:", mylist)
這是代碼運行效果:

非常簡便,我們繼續看看串列元素排序
list的排序
前面說的都是編輯操作,list也可以進行資料排列,也就是按照一定邏輯進行順序排列,
list提供了一個sort函式和reverse函式,
先說簡單的,reverse函式相當于把整個串串車廂直接調頭,也就是list:[1,2,3] 經過reverse函式處理后,變成了[3,2,1],
sort則更加彈性,默認安裝元素面值(比如數字,數字串),還支持傳入一個lambda函式,指定排序邏輯,
以上函式默認會對一個數字組成的陣列進行按數字面值大小排序
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/31 10:36 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學委
# @XueWeiTag: CodingDemo
# @File : list_demo6.py
# @Project : hello
# 串列的其他函式
mylist = [2, 3, 1]
#mylist = ["2", "3", "1"]
mylist.sort()
print("mylist:", mylist)
mylist.extend(['持續學習', '持續開發'])
print("mylist:", mylist)
mylist.sort(key=lambda e: len(str(e)), reverse=True)
print("sorted mylist:", mylist)
mylist.reverse()
print("reversed mylist:", mylist)
效果如下,讀者可以仔細看看是否如學委所說,

特別注意:學委上面示例代碼也展示了,如果一個串列內元素不是同一型別(都是數字,都是字串或者都是某個型別),開發者必須實作一個lambda函式給sort函式作為參考進行排序,
總結
list有很多功能,進行元素的操作(添加/洗掉/定位)等非常方便,
而且還能輕易擴充,排序,逆序等,這讓list的使用非常廣泛,每個學習python的務必多敲代碼,掌握熟練,
對了,喜歡Python的朋友,請關注學委的 Python基礎專欄 or Python入門到精通大專欄
持續學習持續開發,我是雷學委!
編程很有趣,關鍵是把技術搞透徹講明白,
歡迎關注微信,點贊支持收藏!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/357119.html
標籤:python
