【Python基礎(chǔ)】Python 打基礎(chǔ)一定要吃透這 5 個(gè)內(nèi)置函數(shù)
出品:Python數(shù)據(jù)之道
作者:Peter
編輯:Lemon
本文中介紹 Python 中 5 個(gè)高階內(nèi)置函數(shù),它們不僅能夠幫助我們了解 Python 的數(shù)據(jù)結(jié)構(gòu),同時(shí)也能加快數(shù)據(jù)處理的速度,體會(huì)到 Python 的強(qiáng)大。
zip
filter
enumberate
reversed/reverse
eval

1、zip
引例
首先,我們先來(lái)學(xué)習(xí)一個(gè)非常強(qiáng)大的內(nèi)置函數(shù):?zip。通過(guò)一個(gè)例子來(lái)引出?zip的使用:
需求:如果我們想對(duì)兩個(gè)列表對(duì)應(yīng)位置上的數(shù)字一一求和,該如何操作?
x = [1,2,3]
y = [4,5,6]
for循環(huán)實(shí)現(xiàn)

zip實(shí)現(xiàn)

具體實(shí)現(xiàn)過(guò)程:

查看使用文檔
help(zip)

zip接受一個(gè)序列
空序列

接受列表、元組、集合、字符串

zip接受多個(gè)序列
接受列表、元組、集合、字符串的任意組合:
## 列表、元組、集合、字符串的隨意組合
a = [1,2,3]
b = {4,5,6}
c = (7,8,9)
d = "zip"
print(list(zip(a,b))) # 列表+集合
print("------------")
print(list(zip(a,c))) # 列表+元組
print("------------")
print(list(zip(b,d))) # 集合+元組
print("------------")
print(list(zip(c,d))) # 元組+字符串
print("------------")
print(list(zip(a,b,c))) # 列表+集合+字符串

zip處理不同長(zhǎng)度
上面的多個(gè)元素的長(zhǎng)度都是相同的,下面的例子來(lái)展示?zip處理不同長(zhǎng)度的序列。
我們發(fā)現(xiàn):zip會(huì)選擇最小長(zhǎng)度的序列進(jìn)行合并

2、filter
filter本身是?過(guò)濾的意思:就是將那些不符合我們要求的數(shù)據(jù)直接過(guò)濾舍棄掉,剩下那些符合要求的數(shù)據(jù)。
查看幫助文檔
將序列中的每個(gè)元素傳遞給函數(shù),執(zhí)行的結(jié)果為?True或者?False,將結(jié)果為?True的元素放入新的列表中。
返回的是?filter對(duì)象。如果想看具體的數(shù)據(jù),需要使用?list來(lái)展開(kāi)。
help(filter)

使用自定義函數(shù)

使用匿名函數(shù)lambda

直接篩選條件
list(filter(lambda x: x>1, [0,1,9,-4,8,100]))
具體結(jié)果為:
[9, 8, 100]
字符篩選
list(filter(lambda x: x!="shenzhen", ["guangzhou","shanghai","shenzhen","changsha"])) # 篩選不滿足要求的字符串
['guangzhou', 'shanghai', 'changsha']
3、enumerate
enumerate是?Python的一個(gè)重要內(nèi)置函數(shù),返回的是可迭代序列的元素和下標(biāo),對(duì)列表、集合、字典、字符串等都適用的。
在?Python的?for循環(huán)中使用的非常廣泛。
如果想查看結(jié)果,需要使用list函數(shù)來(lái)進(jìn)行顯示。
查看幫助文檔
help(enumerate)

用于列表、集合、元組、字符串、字典


4、reversed
reversed()函數(shù)是返回序列?seq的反向訪問(wèn)的迭代器。
參數(shù)可以是?列表,元組,字符串,不改變?cè)瓕?duì)象均可。下面通過(guò)具體的例子來(lái)說(shuō)明:
查看幫助文檔
help(reversed)

用于列表

用于元組

用于字符串

4.1 reverse
用于對(duì)列表中的元素反向排序,方法沒(méi)有返回值,只是對(duì)列表中的元素進(jìn)行反向排序
只針對(duì)列表!!!!!!
demo

集合不能用reverse
方法只針對(duì)列表
# 集合反向
set1 = {1,"python",3,"java",5}
set1.reverse() # 集合沒(méi)有reverse方法,該方法只針對(duì)列表

5、eval
語(yǔ)法
eval?直接返回傳入字符串的表達(dá)式的結(jié)果,語(yǔ)法為:
eval(expression[, globals[, locals]])
下面通過(guò)幾個(gè)例子來(lái)直接講解該方法的使用
例子
字符串和列表、字典、集合的轉(zhuǎn)化

帶上參數(shù)
三個(gè)參數(shù)的意義:
expression :字符串
globals :變量作用域,全局命名空間;如果被提供,則必須是一個(gè)字典對(duì)象
locals :變量作用域,局部命名空間;如果被提供,可以是任何映射對(duì)象
當(dāng)它和globals中有重復(fù)的部分時(shí),locals里的定義會(huì)覆蓋掉globals中的:當(dāng)globals和locals中有沖突的部分時(shí),locals有決定權(quán)。
如果locals沒(méi)有被 提供的話,則默認(rèn)為globals。

理解expressions
s = "abcd"
eval(s)

# eval先將‘s’的引號(hào)剝?nèi)ィ玫絪.不可以進(jìn)行計(jì)算,開(kāi)始查找s是否是一個(gè)變量的名字,查找到s是一個(gè)字符串,所以程序輸出了s中的內(nèi)容
s = "abcd"
eval('s')
# 結(jié)果為:
'abcd'
單引號(hào)和雙引號(hào)區(qū)別
最外層一定要使用單引號(hào)

作者簡(jiǎn)介 Peter,碩士畢業(yè)僧一枚,從電子專業(yè)自學(xué)Python入門數(shù)據(jù)行業(yè),擅長(zhǎng)數(shù)據(jù)分析及可視化。喜歡數(shù)據(jù),堅(jiān)持跑步,熱愛(ài)閱讀,樂(lè)觀生活。個(gè)人格言:不浮于世,不負(fù)于己 個(gè)人站點(diǎn):www.renpeter.cn,歡迎常來(lái)小屋逛逛
往期精彩回顧
獲取一折本站知識(shí)星球優(yōu)惠券,復(fù)制鏈接直接打開(kāi):
https://t.zsxq.com/y7uvZF6
本站qq群704220115。
加入微信群請(qǐng)掃碼:
