8個超好用內置函數set(),eval(),sorted(),reversed(),map(),reduce(),filter(),enumerate()

創(chuàng)新互聯(lián)技術團隊10余年來致力于為客戶提供做網站、網站設計、成都品牌網站建設、成都營銷網站建設、搜索引擎SEO優(yōu)化等服務。經過多年發(fā)展,公司擁有經驗豐富的技術團隊,先后服務、推廣了上千網站,包括各類中小企業(yè)、企事單位、高校等機構單位。
python中有許多內置函數,不像print那么廣為人知,但它們卻異常的強大,用好了可以大大提高代碼效率。
這次來梳理下8個好用的python內置函數
1、set()
當需要對一個列表進行去重操作的時候,set()函數就派上用場了。
用于創(chuàng)建一個集合,集合里的元素是無序且不重復的。集合對象創(chuàng)建后,還能使用并集、交集、差集功能。
2、eval()之前有人問如何用python寫一個四則運算器,輸入字符串公式,直接產生結果。用eval()來做就很簡單:eval(str_expression)作用是將字符串轉換成表達式,并且執(zhí)行。
3、sorted()在處理數據過程中,我們經常會用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。這時候就需要用到sorted() ,它可以對任何可迭代對象進行排序,并返回列表。對列表升序操作:
對元組倒序操作:
使用參數:key,根據自定義規(guī)則,按字符串長度來排序:
根據自定義規(guī)則,對元組構成的列表進行排序:
4、reversed()如果需要對序列的元素進行反轉操作,reversed()函數能幫到你。reversed()接受一個序列,將序列里的元素反轉,并最終返回迭代器。
5、map()做文本處理的時候,假如要對序列里的每個單詞進行大寫轉化操作。這個時候就可以使用map()函數。
map()會根據提供的函數,對指定的序列做映射,最終返回迭代器。也就是說map()函數會把序列里的每一個元素用指定的方法加工一遍,最終返回給你加工好的序列。舉個例子,對列表里的每個數字作平方處理:
6、reduce()前面說到對列表里的每個數字作平方處理,用map()函數。那我想將列表里的每個元素相乘,該怎么做呢?這時候用到reduce()函數。
reduce()會對參數序列中元素進行累積。第一、第二個元素先進行函數操作,生成的結果再和第三個元素進行函數操作,以此類推,最終生成所有元素累積運算的結果。再舉個例子,將字母連接成字符串。
你可能已經注意到,reduce()函數在python3里已經不再是內置函數,而是遷移到了functools模塊中。這里把reduce()函數拎出來講,是因為它太重要了。
7、filter()一些數字組成的列表,要把其中偶數去掉,該怎么做呢?
filter()函數輕松完成了任務,它用于過濾序列,過濾掉不符合條件的元素,返回一個迭代器對象。filter()函數和map()、reduce()函數類似,都是將序列里的每個元素映射到函數,最終返回結果。我們再試試,如何從許多單詞里挑出包含字母w的單詞。
8、enumerate()這樣一個場景,同時打印出序列里每一個元素和它對應的順序號,我們用enumerate()函數做做看。
enumerate翻譯過來是枚舉、列舉的意思,所以說enumerate()函數用于對序列里的元素進行順序標注,返回(元素、索引)組成的迭代器。再舉個例子說明,對字符串進行標注,返回每個字母和其索引。
1、定義函數
函數是可重用的程序。本書中已經使用了許多內建函數,如len()函數和range()函數,但是還沒自定義過函數。定義函數的語法格式如下:
def 函數名(參數):
函數體
定義函數的規(guī)則如下:
①關鍵字def用來定義一個函數,它是define的縮寫。
②函數名是函數的唯一標識,函數名的命名規(guī)則遵循標識符的命名規(guī)則。
③函數名后面一定要緊跟著一個括號,括號內的參數是可選的,括號后面要有冒號。
④函數體(statement)為一個或一組Python語句,注意要有縮進。
⑤函數體的第一行可以有文檔字符串,用于描述函數的功能,用三引號括起來。
按照定義規(guī)則,可以定義第一個函數了:
def?hello_world():
...?????print('Hello,world!')???#?注意函數體要有縮進
...
hello_world()
Hello,world!
這個函數不帶任何參數,它的功能是打印出“Hello,world!”。最后一行代碼hello_world()是調用函數,即讓Python執(zhí)行函數的代碼。
2、全局變量和局部變量
全局變量是定義在所有函數外的變量。例如,定義一個全局變量a,分別在函數test1()和test2()使用變量a:
a?=?100???#?全局變量
def?test1():
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
100
test2()
100
定義了全局變量a之后,在函數test1()和test2()內都可以使用變量a,由此可知,全局變量的作用范圍是全局。
局部變量是在函數內定義的變量,除了用關鍵字global修飾的變量以外。例如,在函數test1()內定義一個局部變量a,分別在函數外和另一個函數test2()內使用變量a:
def?test1():
...?????a?=?100???#?局部變量
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
100
print(a)
Traceback?(most?recent?call?last):
File?"stdin",?line?1,?in?module
NameError:?name?'a'?is?not?defined
test2()
Traceback?(most?recent?call?last):
File?"stdin",?line?1,?in?module
File?"stdin",?line?2,?in?test2
NameError:?name?'a'?is?not?defined
Python解釋器提示出錯了。由于局部變量a定義在函數test1()內,因此,在函數test1()內可以使用變量a,但是在函數外或者另一個函數test2()內使用變量a,都會報錯,由此可見,局部變量的作用范圍是定義它的函數內部。
一般情況下,在函數內聲明的變量都是局部變量,但是采用關鍵字global修飾的變量卻是全局變量:
def?test1():
...?????global?a???#?全局變量
...?????a?=?100
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
100
print(a)
100
test2()
100
這個程序與上個程序相比,只是在函數test1()中多了一行代碼“global a”,程序便可以正確運行了。在函數test1()中,采用關鍵字global修飾了變量a之后,變量a就變成了全局變量,不僅可以在該函數內使用,還可以在函數外或者其他函數內使用。
如果在某個函數內局部變量與全局變量同名,那么在該函數中局部變量會覆蓋全局變量:
a?=?100???#?全局變量
def?test1():
...?????a?=?200???#?同名局部變量
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
200
test2()
100
由于在函數test1()中定義了一個與全局變量同名的局部變量a,因此,在函數test1()中全局變量a的值被局部變量覆蓋了,但是在函數test2()中全局變量a的值沒有被覆蓋。
綜上所述,在Python中,全局變量保存的數據供整個腳本文件使用;而局部變量只用于臨時保存數據,變量僅供局部代碼塊使用。
大家都知道,在大數據的學習中或者數據分析工作中我們離不開Python,而Python是一種編程語言,很多人聽到編程就認為這是一個十分復雜并且難的事情因而望而卻步,其實并不是這樣的,Python是一種對初學者十分友好的語言,下面我們就給大家講講如何學好Python這么語言。
如果我們要想掌握Python語言的話,其實并不需要花費太大的時間和經歷,這是因為Python 的設計哲學之一就是簡單易學,體現(xiàn)在兩個方面。第一個方面就是語法簡潔明了,相對 Ruby 和 Perl,它的語法特性不多不少,大多數都很簡單直接,沒有十分復雜的東西,第二就是Python的切入點很多,Python 可以讓你可以做很多事情,科學計算和數據分析、爬蟲、Web 網站、游戲、命令行實用工具等等等等,總有一個是你感興趣并且愿意投入時間的。所以,這也是我們學習Python的原因。
那么怎么學習Python呢?任何一種編程語言都包含兩個部分:必須掌握的知識和選擇性掌握的知識。起步階段的主要任務是掌握必須掌握的知識和選擇性掌握的知識。下面我們就給大家介紹一下必須要掌握的知識。
學習Python必須要掌握的知識指的是編程語言的語法、算法和數據結構、編程范式等,比如,我們需要學習變量和類型、循環(huán)語句、分支、函數、類。這部分知識也是具有普適性的,看上去是掌握了一種語法,實際是建立了一種思維。如果我們讓一個資深程序員去學習 Python,不管他是學什么的,他可以很快的將 Java 中的學到的面向對象的知識 map 到 Python 中來,因此能夠快速掌握 Python 中面向對象的特性。當然,如果我們在學Python之前沒有學過任何編程語言,這就需要我們找一本可靠的語法書進行學習,雖然說它看上去可能非常枯燥乏味,但對于建立穩(wěn)固的編程思維是必不可少。我們在學習Python的時候一定要重視編程思維的建立,只有編程思維建立完善以后,我們才能夠學好Python以及很好的編程。
在這篇文章中我們給大家介紹了Python的好處以及Python中必須學會的知識,這些知識是十分重要的,以及編程思維的建立在后面的工作和學習中都是十分重要的,最后提一點,Python真的很簡單,如果有想法的話一定不要放棄。
Python在金融中的應用
在過去的十年里,隨著自動化技術的出現(xiàn),科技最終成為杰出的金融機構,銀行,保險和投資公司,股票交易公司,對沖基金,券商等公司的一部分。根據2013年的Crosman 報告,與2013年相比,銀行和金融公司2014年在科技上的花費要高出4.2%。預計在2020年,一年的金融服務的技術成本將達到5億美元。正值系統(tǒng)需要維護和不斷升級的時候,一些著名的銀行雇傭一些開發(fā)者是很正常的事情。那么Python用在哪里呢?
Python的語法很容易實現(xiàn)那些金融算法和數學計算,每個數學語句都能轉變成一行Python代碼,每行允許超過十萬的計算量。
沒有其他語言能像Python這樣適用于數學,Python精通于計算,以及數學和科學中的排列組合問題。Python的第二個特性是表示數字,序列和算法。比如SciPy庫,很適合用來做技術領域和科學領域的計算,SicPy庫被很多工程師,科學家和分析人員使用。NumPy,也是Python的一個擴展,它可以很好地處理數學函數,數組和矩陣。同時,Python也支持嚴格的編碼模式,因此,使它成為一個平衡的選擇,或者說方法。
使用更少的人達到相同的結果以及實現(xiàn)其他編程語言不能實現(xiàn)的事,是Python首要的優(yōu)點。Python語法的精確和簡潔,以及它大量寶貴的第三方工具使它成為處理金融行業(yè)的錯綜復雜的事務的唯一可靠的選擇。
Cititec(英格蘭倫敦的職業(yè)介紹所)的技術招聘經理Stephen Grant說:跨市場風險管理和交易系統(tǒng)都在使用Python(有時會混合使用c++),很多銀行從建立銀行的前端到資產風險系統(tǒng)都會選擇使用Python。使用Python的金融公司包括荷蘭銀行,德國證券交易所集團,Bellco信用社,摩根大通以及阿爾蒂斯投資管理。
鏈接:
提取碼:4591
華爾街學堂 python金融實務從入門到精通。最近,越來越多的研究員、基金經理甚至財務會計領域的朋友,向小編咨詢:金融人需要學Python么?事實上在現(xiàn)在,這已經不是一個問題了。Python已成為國內很多頂級投行、基金、咨詢等泛金融、商科領域的必備技能。中金公司、銀河證券、南方基金、銀華基金在招聘分析師崗位時,紛紛要求熟練掌握Python數據分析技能。
課程目錄:
Python在金融資管領域中的應用
安裝anaconda步驟
Python基礎知識
Python基礎金融分析應用
成為編程能手:Python知識進階
利用Python實現(xiàn)金融數據收集、分析與可視化
......
分享標題:python金融函數,python語言在金融領域的應用
網頁URL:http://chinadenli.net/article21/dseoscd.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供響應式網站、搜索引擎優(yōu)化、品牌網站建設、域名注冊、網站內鏈、ChatGPT
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)