目錄
1、混亂的切片操作
2、優雅的推導式
3、總結
因為作業中不怎么使用python,所以對python的了解不夠,只是在使用的時候才去學,在之前的幾個例子中幾乎沒使用什么python的特有語法,本著完成任務優先的原則也沒有深入,但是在閱讀別人的代碼的時候發現有些特有語法不是很熟悉,搞不清代碼的真正意思,今天就搞清楚切片和推導式的使用,OK,我們開始吧

記憶點:正向的時候第一個是0,負向的時候第一個是-1,可以把串列當做一個換,正向的是1 ,負向的 是-1,0 是中間點
1、混亂的切片操作
一個完整的切片運算式包含兩個“:”,用于分隔三個引數(start_index、end_index、step),當只有一個“:”時,默認第三個引數step=1,
切片操作基本運算式:object[start_index : end_index : step]
step:正負數均可,其絕對值大小決定了切取資料時的“步長”,而正負號決定了“切取方向”,正表示“從左往右”取值,負表示“從右往左”取值,當step省略時,默認為1,即從左往右以增量1取值,“切取方向非常重要!”“切取方向非常重要!”“切取方向非常重要!”,重要的事情說三遍!
start_index:表示起始索引(包含該索引本身);該引數省略時,表示從物件“端點”開始取值,至于是從“起點”還是從“終點”開始,則由step引數的正負決定,step為正從“起點”開始,為負從“終點”開始,
end_index:表示終止索引(不包含該索引本身);該引數省略時,表示一直取到資料”端點“,至于是到”起點“還是到”終點“,同樣由step引數的正負決定,step為正時直到”終點“,為負時直到”起點“,
一句話,最后的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、優雅的推導式
# 串列推導式的語法格式如下:
# [運算式 for 迭代變數 in 可迭代物件 [if 條件運算式] ]
?
# ==> for 迭代變數 in 可迭代物件
# 運算式
一句話總結:結果是什么型別是外面的括號表示,后面的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 '有人云淡風輕,有人負重前行'}
print(set_a)
3、總結
切片和推導式是python中常用的語法,如果能靈活運用可以用來裝逼,也可以讓代碼簡潔一些

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/295657.html
標籤:python
上一篇:微軟官方上線了Python教程,7個章節竟然就把Python說明白了
下一篇:6.Django中子路由的使用【配合include()函式使用進行路由分配】 && path()中引數kwargs講解
