摘要:以上函數(shù)默認(rèn)會(huì)對(duì)一個(gè)數(shù)字組成的數(shù)組進(jìn)行按數(shù)字面值大小排序下午雷學(xué)委列表的其他函數(shù)持續(xù)學(xué)習(xí)持續(xù)開(kāi)發(fā)效果如下,讀者可以仔細(xì)看看是否如學(xué)委所說(shuō)。
正式的Python專欄第27篇,同學(xué)站住,別錯(cuò)過(guò)這個(gè)從0開(kāi)始的文章!
上篇學(xué)委對(duì)照tuple文章的操作一一羅列了list列表數(shù)據(jù)的相應(yīng)的操作。
這次我們繼續(xù)把list的其他操作看完。
前面學(xué)委提到tuple(元組)就是焊死了的一串串車廂,list支持元素編輯,明顯靈活多了。
我們先看看刪除操作,python中的list就支持了3中刪除元素的操作。
假設(shè)我們定義一個(gè)列表對(duì)象 list_obj, 那么我們可以執(zhí)行下面任意一個(gè)操作,進(jìn)行元素刪除。
del list_obj[下標(biāo)]list_obj.remove(某個(gè)元素值)list_obj.pop(下標(biāo)) #返回元素值
好,我們看看下面完整代碼:
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/10/31 10:36 下午# @Author : LeiXueWei# @CSDN/Juejin/Wechat: 雷學(xué)委# @XueWeiTag: CodingDemo# @File : list_demo4.py# @Project : hello# 刪除列表元素mylist = [1, 0, 2, 4, "雷學(xué)委"]print("mylist:", mylist)del mylist[0]print("after remove first element, mylist:", mylist)mylist.remove("雷學(xué)委")print("after remove first element, mylist:", mylist)removed_value = mylist.pop(1) # 移除并返回的元素值print("after remove first element, mylist:", mylist)print("removed value:", removed_value)
效果如下:
特別需要注意的是:刪除元素不能超過(guò)list的下標(biāo)范圍,否則報(bào)錯(cuò)!
先不說(shuō)修改的,list也支持定位查找元素,我們先看看。
list_obj.index(某個(gè)元素值) #通過(guò)某個(gè)元素值定位到第一個(gè)匹配的下標(biāo),從0位置開(kāi)始找。
假設(shè)list_obj = [3, 2, 1] 那么list_obj.index(2) 則是什么?
答案是:1。
好,我們繼續(xù)說(shuō)插入新元素。
# python中的list支持下面兩種方式追加元素list_obj.insert(指定下標(biāo), 元素)list_obj.append(元素) #末尾追元素
那么一次性追加多個(gè),或者直接擴(kuò)充某個(gè)列表到現(xiàn)有列表呢?
我們找到了extend函數(shù),使用list_obj.extend(補(bǔ)充列表) 就能把list_obj直接擴(kuò)充了,效果是依次追加補(bǔ)充列表的元素到末尾。
說(shuō)這么多操作,我們直接復(fù)制運(yùn)行下面的代碼看看:
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/10/31 10:36 下午# @Author : LeiXueWei# @CSDN/Juejin/Wechat: 雷學(xué)委# @XueWeiTag: CodingDemo# @File : list_demo5.py# @Project : hello# 列表的其他函數(shù)mylist = [6, 6, 6]print("mylist:", mylist)mylist.append("雷學(xué)委")print("mylist:", mylist)print("列表多少個(gè)6?:", mylist.count(6))print("第一個(gè)6的位置下標(biāo)?:", mylist.index(6))mylist.insert(2, 1024)print("第一個(gè)1024的位置下標(biāo)?:", mylist.index(1024))last = mylist.pop() #刪除操作前面說(shuō)過(guò)了,這幾舉例一個(gè)。print("最后的元素是:",last)print("mylist:", mylist)# 直接追加新列表mylist.extend(mylist) # 相當(dāng)于mylist = mylist * 2print("mylist:", mylist)mylist.extend(["持續(xù)學(xué)習(xí)", "持續(xù)開(kāi)發(fā)"])print("mylist:", mylist)
這是代碼運(yùn)行效果:
非常簡(jiǎn)便,我們繼續(xù)看看列表元素排序
前面說(shuō)的都是編輯操作,list也可以進(jìn)行數(shù)據(jù)排列,也就是按照一定邏輯進(jìn)行順序排列。
list提供了一個(gè)sort函數(shù)和reverse函數(shù)。
先說(shuō)簡(jiǎn)單的,reverse函數(shù)相當(dāng)于把整個(gè)串串車廂直接調(diào)頭。也就是list:[1,2,3] 經(jīng)過(guò)reverse函數(shù)處理后,變成了[3,2,1]。
sort則更加彈性,默認(rèn)安裝元素面值(比如數(shù)字,數(shù)字串),還支持傳入一個(gè)lambda函數(shù),指定排序邏輯。
以上函數(shù)默認(rèn)會(huì)對(duì)一個(gè)數(shù)字組成的數(shù)組進(jìn)行按數(shù)字面值大小排序
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/10/31 10:36 下午# @Author : LeiXueWei# @CSDN/Juejin/Wechat: 雷學(xué)委# @XueWeiTag: CodingDemo# @File : list_demo6.py# @Project : hello# 列表的其他函數(shù)mylist = [2, 3, 1]#mylist = ["2", "3", "1"]mylist.sort()print("mylist:", mylist)mylist.extend(["持續(xù)學(xué)習(xí)", "持續(xù)開(kāi)發(fā)"])print("mylist:", mylist)mylist.sort(key=lambda e: len(str(e)), reverse=True)print("sorted mylist:", mylist)mylist.reverse()print("reversed mylist:", mylist)
效果如下,讀者可以仔細(xì)看看是否如學(xué)委所說(shuō)。
特別注意:學(xué)委上面示例代碼也展示了,如果一個(gè)列表內(nèi)元素不是同一類型(都是數(shù)字,都是字符串或者都是某個(gè)類型),開(kāi)發(fā)者必須實(shí)現(xiàn)一個(gè)lambda函數(shù)給sort函數(shù)作為參考進(jìn)行排序。
list有很多功能,進(jìn)行元素的操作(添加/刪除/定位)等非常方便。
而且還能輕易擴(kuò)充,排序,逆序等,這讓list的使用非常廣泛,每個(gè)學(xué)習(xí)python的務(wù)必多敲代碼,掌握熟練。
對(duì)了,喜歡Python的朋友,請(qǐng)關(guān)注學(xué)委的 Python基礎(chǔ)專欄 or Python入門到精通大專欄
持續(xù)學(xué)習(xí)持續(xù)開(kāi)發(fā),我是雷學(xué)委!
編程很有趣,關(guān)鍵是把技術(shù)搞透徹講明白。
歡迎關(guān)注微信,點(diǎn)贊支持收藏!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/123378.html
摘要:常聽(tīng)到服務(wù)器端渲染和瀏覽器端渲染這兄弟倆,一直不是很理解,尤其對(duì)于我這種沒(méi)有后臺(tái)開(kāi)發(fā)經(jīng)驗(yàn)的小白來(lái)說(shuō),理解起來(lái)異常困難,最近花時(shí)間查了很多資料,總算弄明白了,于是整理下,加深記憶。 常聽(tīng)到服務(wù)器端渲染和瀏覽器端渲染這兄弟倆,一直不是很理解,尤其對(duì)于我這種沒(méi)有后臺(tái)開(kāi)發(fā)經(jīng)驗(yàn)的小白來(lái)說(shuō),理解起來(lái)異常困難,最近花時(shí)間查了很多資料,總算弄明白了,于是整理下,加深記憶。這邊文章是參考下面的文章做的總...
摘要:常聽(tīng)到服務(wù)器端渲染和瀏覽器端渲染這兄弟倆,一直不是很理解,尤其對(duì)于我這種沒(méi)有后臺(tái)開(kāi)發(fā)經(jīng)驗(yàn)的小白來(lái)說(shuō),理解起來(lái)異常困難,最近花時(shí)間查了很多資料,總算弄明白了,于是整理下,加深記憶。 常聽(tīng)到服務(wù)器端渲染和瀏覽器端渲染這兄弟倆,一直不是很理解,尤其對(duì)于我這種沒(méi)有后臺(tái)開(kāi)發(fā)經(jīng)驗(yàn)的小白來(lái)說(shuō),理解起來(lái)異常困難,最近花時(shí)間查了很多資料,總算弄明白了,于是整理下,加深記憶。這邊文章是參考下面的文章做的總...
摘要:特點(diǎn),永久免費(fèi),數(shù)據(jù)中心多達(dá)個(gè),之前好用的首爾和東京因?yàn)楸姸嗟挠咳雽?dǎo)致線路擁堵不堪此外機(jī)型可自由分配個(gè),內(nèi)存,最大空間容量和的帶寬。是烏克蘭官方為個(gè)人提供的免費(fèi)二級(jí)域名后綴,任何人都可以申請(qǐng)。由烏克蘭官方運(yùn)行,穩(wěn)定性有保障。作為一個(gè)mjj,最喜歡做的事情就是薅羊毛,這篇文章就來(lái)整理一些特別優(yōu)質(zhì)的,不容錯(cuò)過(guò)的羊毛!算是薅羊毛的一個(gè)指南!! 一:永久VPS篇 這里整理一些永久...
摘要:卸載階段組件卸載和銷毀老版生命周期之前的生命周期初始化階段涉及個(gè)鉤子函數(shù)這些方法會(huì)在組件初始化的時(shí)候被調(diào)用,只跟實(shí)例的創(chuàng)建有關(guān)。 前言:React 的版本從 v15 到 v16.3 ,再到v16.4,現(xiàn)在最新的版本是 v16.8了。其中最大的變化可能是React Hooks的加入,而最令人困惑的卻是它的生命周期,新舊生命周期函數(shù)混雜在一起,難免會(huì)讓許多新來(lái)者有很多困惑。所以這一篇我們來(lái)...
摘要:這說(shuō)明類已經(jīng)處于繼承鏈條的頂端,是所有類的父類。這就是說(shuō)這一元類的父類是。我們來(lái)捋一捋,也就是說(shuō)類是由元類創(chuàng)建的,但是類又繼承了類。元類的類則是由元類自身創(chuàng)建的。 學(xué)習(xí)python的同學(xué)都知道這么幾句話 object類是所有新式類的父類。 type是所有類的類。 那么type和object是什么關(guān)系呢?object是一個(gè)新式類,我們可以通過(guò)object.__class__和obje...
閱讀 2044·2021-11-15 11:39
閱讀 3226·2021-10-09 09:41
閱讀 1490·2019-08-30 14:20
閱讀 3261·2019-08-30 13:53
閱讀 3324·2019-08-29 16:32
閱讀 3361·2019-08-29 11:20
閱讀 3018·2019-08-26 13:53
閱讀 774·2019-08-26 12:18