1. 程式人生 > >Python(8): Lambda,列表解析器,生成器表示式,range函式

Python(8): Lambda,列表解析器,生成器表示式,range函式

看到這裡,我覺得之前的幾個文章裡面的內容,如果熟悉了就算是入門了。之後的內容,很多都是用到了才需要。
甚至很多內容只是提高效率來用的,完全可以通過基礎的東西做出來。
作為一個初學者,知其然就可以了,不必強求所以然。
這個時候,應該去下載別人的一些程式碼來看看,自己修改,手動做一做是最好的學習。
不過我早就不是初學者了,所以繼續往下走走,再去練習。
或者這是強迫症吧。

Lambda:一種簡單的匿名函式。C++也有類似的東西。
lambda與filter的配合
>>> a = [1,2,3,4,5,6,7,8,9,0]
>>> b = filter(lambda x: x%2 == 0, a) # 過濾出雙數
>>> print(*b)
2 4 6 8 0

lambda與map的配合
>>> c =  map(lambda x: "xxxxx " + str(x) +"\n", a)
>>> print(*c)
xxxxx 1
 xxxxx 2
 xxxxx 3
 xxxxx 4
 xxxxx 5
 xxxxx 6
 xxxxx 7
 xxxxx 8
 xxxxx 9
 xxxxx 0
>>> a = [[1,2,3],[3,4,7],[8897,3,999]]
>>> c = map(lambda list: [list[1],list[0],list[2]], a)
>>> print(*c)
[2, 1, 3] [4, 3, 7] [3, 8897, 999]
lambda只能執行一個簡單的表示式,複雜的東西是做不了的

列表解析:返回的是一個列表list,用[]包著
語法:[expr for iter_var in iterable] 或 [expr for iter_var in iterable if cond_expr]
>>> a = [1,2,3,4,5,6,7,8,9,0]
>>> [x for x in a]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> [x for x in a if x % 2 == 0]
[2, 4, 6, 8, 0]

生成器表示式:用()包著
語法:(expr for iter_var in iterable) 或 (expr for iter_var in iterable if cond_expr)
列表解析是比較早的Python版本里就引進的(好像是2.0版本),而生成器表示式則是在2.4中引入的新內容,它和列表解析的語法很像,但是在大 資料量處理時,生成器表示式的優勢就體現出來了,因為它的記憶體使用方式更好,效率更高,它並不建立一個列表,只是返回一個生成器。當然,列表解析並不會被 遺棄。
>>> (i + 1 for i in range(10) if i % 2)
<generator object <genexpr> at 0x011DC5D0>

迭代器range函式
>>> range(1,5) #代表從1到5(不包含5)
[1, 2, 3, 4]
>>> range(1,5,2) #代表從1到5,間隔2(不包含5)
[1, 3]
>>> range(5) #代表從0到5(不包含5)
[0, 1, 2, 3, 4]

getopt模組,從命令列中得到選項
getopt.getopt
getopt.gnu_getopt

相關推薦

Python8 Lambda列表解析生成器表示式range函式

看到這裡,我覺得之前的幾個文章裡面的內容,如果熟悉了就算是入門了。之後的內容,很多都是用到了才需要。 甚至很多內容只是提高效率來用的,完全可以通過基礎的東西做出來。 作為一個初學者,知其然就可以了,不必強求所以然。 這個時候,應該去下載別人的一些程式碼來看看,自己修改,手動

每日一python8基礎資料結構----列表

List(列表)是Python內建的一種資料型別。List是一種有序的集合,可以隨時新增和刪除其中的元素。 比如,列出班裡所有同學的名字,就可以用一個list表示: >>> classmates = ['Bob', 'tracy', 'Jack', 'Judy'

小白學 Python8基礎流程控制

人生苦短,我選Python 前文傳送門 小白學 Python(1):開篇 小白學 Python(2):基礎資料型別(上) 小白學 Python(3):基礎資料型別(下) 小白學 Python(4):變數基礎操作 小白學 Python(5):基礎運算子(上) 小白學 Python(6):基礎運算子(下)

Python基礎8python中的特性進階篇迭代列表生成式生成器迭代

python中還包括一些高階特性,以下簡單介紹。 迭代 定義:用for迴圈來遍歷物件的過程,叫做迭代。 作用物件:可迭代物件 如何判斷是否為可迭代物件:isinstance(xxx,Iterable),Iterable型別來源於collections模組。 應用場景: 1

Python從菜鳥到高手8print函數、賦值與代碼塊

images rec 控制臺輸出 error enter sam 運算 賦值 編程語言 1.神奇的print函數 ??print函數相信讀者一定對它不陌生,因為在前面的章節,幾乎每個例子都使用了print函數,這個函數的功能就是在控制臺輸出文本。不過print在輸出文本時還

標號8python(就業階段)——html和css入門

<1>html概述及html文件基本結構   1、html概述  HTML是 HyperText Mark-up Language 的首字母簡寫,意思是超文字標記語言,是一種用來製作網頁的語言,這種語言由一個個的標籤組成,用這種語言製作的檔案儲存的是一個文字檔案,

藍的成長記——追逐DBA1):奔波於路上挺進山東 藍的成長記——追逐DBA3):古董上操作資料匯入匯出成了問題 藍的成長記——追逐DBA(8):重拾SP報告回憶oracle的STATSPACK實驗 藍的成長記— —追逐DBA9):國慶漸去追逐DBA新規劃新啟程

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

ApolloStudio高手之路8Python呼叫.NetC#、VB.Net等開發的動態連結庫DLL庫檔案實現相互協作

ApolloStudio是基於.Net與Python雙架構下的實現,這樣的架構體系使得其具有傳統定製軟體無法比擬的超強拓展性,在本文中我們將介紹這兩者是如何在ApolloStudio平臺上實現優勢互補的。由於在ApolloStudio中使用的更易學習的Python作為主導指令碼語言,這裡我們將介

python快速學習系列8異常處理

-異常通常出現的處理方式 ·條件語句:if/else ·異常處理:try/except/else/finally 1.python中的異常和相關語法 ·exception:python內建的異常類 ·raise:丟擲異常 ·try:嘗試執行以下語句 ·except:在try語句之後,捕獲

Python初學者好玩案例最短的抓取網頁圖片程式碼只有10行

這幾天閒來無事,又研究了一下Python的基礎內容,首先研究的是如何抓取網頁資料。 發現大神們通常在初級教程裡就要寫很多程式碼,真讓我們這些初學者無所適從。 加上Python的各種版本不同,也會讓初學者頭腦,在此提醒初學者,看資料一定要注意軟體版本號。 還是按照我的原則,凡

Python+OGR庫學習讀取點向量檔案屬性值和座標並儲存為TXT一行一個要素值

程式碼思路: 1、匯入相關庫包,切換到當前資料夾 2、註冊驅動,開啟點向量檔案,獲取圖層 3、開啟待寫入TXT檔案 4、遍歷要素: (1)獲取當前要素‘ID’和‘cover’欄位屬性 (2)獲取當前點要素對應幾何物件和其座標值X,Y (3)將ID、cover、X、Y寫入TXT檔案 (

Python影象處理8邊緣檢測

快樂蝦歡迎轉載,但請保留作者資訊此前已經得到了單個區域植株影象,接下來似乎應該嘗試對這些區域進行分類識別。通過外形和葉脈進行植物種類的識別顯然是一種直觀的做法,然而由於葉片交疊和光照等現實條件的存在,限

Python自然語言處理實戰8情感分析技術

實戰電影評論情感分析         情感分析是一段文字表達的情緒狀態。其中,一段文字可以使一個句子、一個段落或者一個文件。主要涉及兩個問題:文字表達和文字分類。在深度學習出現之前,主流的表示方法有BOW(詞袋模型)和topic model(主題模型),分類模型主要有SVM

python-opencv8影象的腐蝕與膨脹

語法: dst=cv2.erode(src,kernel,iterations) dst=cv2.dilate(src,kernel,iterations) kernel:卷積核     kernel=np.ones((5,5),np.uint8) 程式示例: im

ArcGIS for Android 10.2.98計算距離周長面積

GeometryEngine是Arcgis的重要工具類,利用此工具類,可以計算地圖上的距離、面積,將點、線、面轉化為Json資料,將Json轉化為點線面,座標轉換作用非常強大。 1.計算距離: //計算兩點距離: Point poi

小白學 Python9基礎資料結構列表

人生苦短,我選Python 前文傳送門 小白學 Python(1):開篇 小白學 Python(2):基礎資料型別(上) 小白學 Python(3):基礎資料型別(下) 小白學 Python(4):變數基礎操作 小白學 Python(5):基礎運算子(上) 小白學 Python(6):基礎運算子(下)

小白學 Python10基礎資料結構列表

人生苦短,我選Python 前文傳送門 小白學 Python(1):開篇 小白學 Python(2):基礎資料型別(上) 小白學 Python(3):基礎資料型別(下) 小白學 Python(4):變數基礎操作 小白學 Python(5):基礎運算子(上) 小白學 Python(6):基礎運算子(下)

小白學 Python 爬蟲8網頁基礎

人生苦短,我用 Python 前文傳送門: 小白學 Python 爬蟲(1):開篇 小白學 Python 爬蟲(2):前置準備(一)基本類庫的安裝 小白學 Python 爬蟲(3):前置準備(二)Linux基礎入門 小白學 Python 爬蟲(4):前置準備(三)Docker基礎入門 小白學 Pyth

小白學 Python 資料分析8Pandas 資料預處理

人生苦短,我用 Python 前文傳送門: 小白學 Python 資料分析(1):資料分析基礎 小白學 Python 資料分析(2):Pandas (一)概述 小白學 Python 資料分析(3):Pandas (二)資料結構 Series 小白學 Python 資料分析(4):Pandas (三)資

Swift學習筆記8枚舉

check oss 函數 not 條形碼 blog 出現 現在 pan 目錄: 基本語法 關聯值 原始值 枚舉為一組相關的值定義了一個共同的類型。 ?可以給枚舉成員指定原始值類型:字符串,字符,整型值或浮點數等 ?枚舉成員可以指定任意類型的關聯值存儲