詳解Python中的List 2

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的使用非常廣泛

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: