一篇文章搞懂python混亂的切換操作與優(yōu)雅的推導(dǎo)式
前言
因?yàn)楣ぷ髦胁辉趺词褂胮ython,所以對(duì)python的了解不夠,只是在使用的時(shí)候才去學(xué),在之前的幾個(gè)例子中幾乎沒(méi)使用什么python的特有語(yǔ)法,本著完成任務(wù)優(yōu)先的原則也沒(méi)有深入,但是在閱讀別人的代碼的時(shí)候發(fā)現(xiàn)有些特有語(yǔ)法不是很熟悉,搞不清代碼的真正意思,今天就搞清楚切片和推導(dǎo)式的使用,OK。我們開始吧

記憶點(diǎn):正向的時(shí)候第一個(gè)是0,負(fù)向的時(shí)候第一個(gè)是-1,可以把列表當(dāng)做一個(gè)換,正向的是1 ,負(fù)向的 是-1,0 是中間點(diǎn)
1、混亂的切片操作
一個(gè)完整的切片表達(dá)式包含兩個(gè)“:”,用于分隔三個(gè)參數(shù)(start_index、end_index、step),當(dāng)只有一個(gè)“:”時(shí),默認(rèn)第三個(gè)參數(shù)step=1。
切片操作基本表達(dá)式:object[start_index : end_index : step]
step:正負(fù)數(shù)均可,其絕對(duì)值大小決定了切取數(shù)據(jù)時(shí)的“步長(zhǎng)”,而正負(fù)號(hào)決定了“切取方向”,正表示“從左往右”取值,負(fù)表示“從右往左”取值。當(dāng)step省略時(shí),默認(rèn)為1,即從左往右以增量1取值?!扒腥》较蚍浅V匾 薄扒腥》较蚍浅V匾?!”“切取方向非常重要!”,重要的事情說(shuō)三遍!
start_index:表示起始索引(包含該索引本身);該參數(shù)省略時(shí),表示從對(duì)象“端點(diǎn)”開始取值,至于是從“起點(diǎn)”還是從“終點(diǎn)”開始,則由step參數(shù)的正負(fù)決定,step為正從“起點(diǎn)”開始,為負(fù)從“終點(diǎn)”開始。
end_index:表示終止索引(不包含該索引本身);該參數(shù)省略時(shí),表示一直取到數(shù)據(jù)”端點(diǎn)“,至于是到”起點(diǎn)“還是到”終點(diǎn)“,同樣由step參數(shù)的正負(fù)決定,step為正時(shí)直到”終點(diǎn)“,為負(fù)時(shí)直到”起點(diǎn)“。
一句話,最后的step 決定了方向,從startIndex 到end_index 截取。
舉個(gè)例子:
l = [1,2,3,4,5,6,7,8,9] # 1、單個(gè)索引 print(l[2]) # 2、兩個(gè)索引,正向 l2 = l[1:3] print(l2) # 3、兩個(gè)索引,反向 l3 = l[1:3:-1] print(l3) l4 = l[-1:-3:-1] print(l4)
2、優(yōu)雅的推導(dǎo)式
# 列表推導(dǎo)式的語(yǔ)法格式如下: # [表達(dá)式 for 迭代變量 in 可迭代對(duì)象 [if 條件表達(dá)式] ] # ==> for 迭代變量 in 可迭代對(duì)象 # 表達(dá)式
一句話總結(jié):結(jié)果是什么類型是外面的括號(hào)表示,后面的for之前的語(yǔ)句在遍歷的時(shí)候運(yùn)行
舉個(gè)例子:
# 計(jì)算表達(dá)式得到的一系列值組成一個(gè)列表。
list = [i for i in range(10) if i > 3]
print(list)
dict_b = {key: key * key for key in range(6)}
print(dict_b)
set_a = {value for value in '有人云淡風(fēng)輕,有人負(fù)重前行'}
print(set_a)
3、總結(jié)
切片和推導(dǎo)式是python中常用的語(yǔ)法,如果能靈活運(yùn)用可以用來(lái)裝逼,也可以讓代碼簡(jiǎn)潔一些
到此這篇關(guān)于python混亂的切換操作與優(yōu)雅的推導(dǎo)式的文章就介紹到這了,更多相關(guān)python切換操作與推導(dǎo)式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Python開發(fā)環(huán)境中調(diào)用ChatGPT模型詳細(xì)過(guò)程
在開發(fā)過(guò)程當(dāng)中時(shí)常需要使用 ChatGPT 來(lái)完成一些任務(wù),但總是使用網(wǎng)頁(yè)交互模式去 Web 端訪問(wèn) ChatGPT 是很麻煩的,這時(shí)候我們可以使用代碼來(lái)調(diào)用 ChatGPT 模型,本文將詳細(xì)介紹在 Python 開發(fā)環(huán)境中調(diào)用 ChatGPT 模型過(guò)程,,需要的朋友可以參考下2023-05-05
通過(guò)Python編寫一個(gè)簡(jiǎn)單登錄功能過(guò)程解析
這篇文章主要介紹了通過(guò)Python編寫一個(gè)簡(jiǎn)單登錄功能過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
Mac中Python 3環(huán)境下安裝scrapy的方法教程
作為一名python爬蟲愛(ài)好者,怎能不折騰下Scrapy?折騰了許久之后終于安裝到了mac中,所以下面這篇文章主要給大家介紹了關(guān)于Mac系統(tǒng)中Python 3環(huán)境下安裝scrapy的相關(guān)資料,文中將實(shí)現(xiàn)的步驟一步步介紹的非常詳細(xì),需要的朋友可以參考下。2017-10-10
Python3 利用face_recognition實(shí)現(xiàn)人臉識(shí)別的方法
這篇文章主要介紹了Python3 利用face_recognition實(shí)現(xiàn)人臉識(shí)別的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Python的Flask框架與數(shù)據(jù)庫(kù)連接的教程
這篇文章主要介紹了Python的Flask框架與數(shù)據(jù)庫(kù)連接的教程,是Flask框架學(xué)習(xí)當(dāng)中的基本知識(shí),需要的朋友可以參考下2015-04-04
解決Pymongo insert時(shí)會(huì)自動(dòng)添加_id的問(wèn)題
這篇文章主要介紹了解決Pymongo insert時(shí)會(huì)自動(dòng)添加_id的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
分析python并發(fā)網(wǎng)絡(luò)通信模型
隨著互聯(lián)網(wǎng)和物聯(lián)網(wǎng)的高速發(fā)展,使用網(wǎng)絡(luò)的人數(shù)和電子設(shè)備的數(shù)量急劇增長(zhǎng),其也對(duì)互聯(lián)網(wǎng)后臺(tái)服務(wù)程序提出了更高的性能和并發(fā)要求。本文主要分析比較了一些模型的優(yōu)缺點(diǎn),并且用python來(lái)實(shí)現(xiàn)2021-06-06
Python NumPy實(shí)現(xiàn)數(shù)組排序與過(guò)濾示例分析講解
NumPy是Python的一種開源的數(shù)值計(jì)算擴(kuò)展,它支持大量的維度數(shù)組與矩陣運(yùn)算,這篇文章主要介紹了使用NumPy實(shí)現(xiàn)數(shù)組排序與過(guò)濾的方法,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-05-05

