一篇文章搞懂python混亂的切換操作與優雅的推導式
前言
因為工作中不怎麼使用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中常用的語法,如果能靈活運用可以用來裝逼,也可以讓代碼簡潔一些
到此這篇關於python混亂的切換操作與優雅的推導式的文章就介紹到這瞭,更多相關python切換操作與推導式內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python 列表的查詢操作和切片
- Python列表list的詳細用法介紹
- Python中迭代器與生成器的用法
- python進階從青銅到王者一定會用上的Python技巧
- Python序列的推導式實現代碼