溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python切片和推導(dǎo)式怎么用

發(fā)布時間:2021-08-23 10:10:37 來源:億速云 閱讀:105 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了python切片和推導(dǎo)式怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

前言

因為工作中不怎么使用python,所以對python的了解不夠,只是在使用的時候才去學(xué),在之前的幾個例子中幾乎沒使用什么python的特有語法,本著完成任務(wù)優(yōu)先的原則也沒有深入,但是在閱讀別人的代碼的時候發(fā)現(xiàn)有些特有語法不是很熟悉,搞不清代碼的真正意思,今天就搞清楚切片和推導(dǎo)式的使用,OK。我們開始吧

python切片和推導(dǎo)式怎么用

記憶點:正向的時候第一個是0,負(fù)向的時候第一個是-1,可以把列表當(dāng)做一個換,正向的是1 ,負(fù)向的 是-1,0 是中間點

1、混亂的切片操作

一個完整的切片表達式包含兩個“:”,用于分隔三個參數(shù)(start_index、end_index、step),當(dāng)只有一個“:”時,默認(rèn)第三個參數(shù)step=1。

切片操作基本表達式:object[start_index : end_index : step]

step:正負(fù)數(shù)均可,其絕對值大小決定了切取數(shù)據(jù)時的“步長”,而正負(fù)號決定了“切取方向”,正表示“從左往右”取值,負(fù)表示“從右往左”取值。當(dāng)step省略時,默認(rèn)為1,即從左往右以增量1取值?!扒腥》较蚍浅V匾?!”“切取方向非常重要!”“切取方向非常重要!”,重要的事情說三遍!

start_index:表示起始索引(包含該索引本身);該參數(shù)省略時,表示從對象“端點”開始取值,至于是從“起點”還是從“終點”開始,則由step參數(shù)的正負(fù)決定,step為正從“起點”開始,為負(fù)從“終點”開始。

end_index:表示終止索引(不包含該索引本身);該參數(shù)省略時,表示一直取到數(shù)據(jù)”端點“,至于是到”起點“還是到”終點“,同樣由step參數(shù)的正負(fù)決定,step為正時直到”終點“,為負(fù)時直到”起點“。

一句話,最后的step 決定了方向,從startIndex 到end_index 截取。

舉個例子:

l = [1,2,3,4,5,6,7,8,9]
# 1、單個索引
print(l[2])

# 2、兩個索引,正向
l2 = l[1:3]
print(l2)

# 3、兩個索引,反向
l3 = l[1:3:-1]
print(l3)

l4 = l[-1:-3:-1]
print(l4)

2、優(yōu)雅的推導(dǎo)式

# 列表推導(dǎo)式的語法格式如下:
# [表達式 for 迭代變量 in 可迭代對象 [if 條件表達式] ]

# ==>  for 迭代變量 in 可迭代對象
#          表達式

一句話總結(jié):結(jié)果是什么類型是外面的括號表示,后面的for之前的語句在遍歷的時候運行

舉個例子:

# 計算表達式得到的一系列值組成一個列表。
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)

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“python切片和推導(dǎo)式怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI