日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
python閉集函數(shù) 函數(shù)閉包 python

python 8個(gè)常用內(nèi)置函數(shù)解說(shuō)

8個(gè)超好用內(nèi)置函數(shù)set(),eval(),sorted(),reversed(),map(),reduce(),filter(),enumerate()

創(chuàng)新互聯(lián)建站是專業(yè)的江寧網(wǎng)站建設(shè)公司,江寧接單;提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行江寧網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

python中有許多內(nèi)置函數(shù),不像print那么廣為人知,但它們卻異常的強(qiáng)大,用好了可以大大提高代碼效率。

這次來(lái)梳理下8個(gè)好用的python內(nèi)置函數(shù)

1、set()

當(dāng)需要對(duì)一個(gè)列表進(jìn)行去重操作的時(shí)候,set()函數(shù)就派上用場(chǎng)了。

用于創(chuàng)建一個(gè)集合,集合里的元素是無(wú)序且不重復(fù)的。集合對(duì)象創(chuàng)建后,還能使用并集、交集、差集功能。

2、eval()之前有人問(wèn)如何用python寫一個(gè)四則運(yùn)算器,輸入字符串公式,直接產(chǎn)生結(jié)果。用eval()來(lái)做就很簡(jiǎn)單:eval(str_expression)作用是將字符串轉(zhuǎn)換成表達(dá)式,并且執(zhí)行。

3、sorted()在處理數(shù)據(jù)過(guò)程中,我們經(jīng)常會(huì)用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。這時(shí)候就需要用到sorted() ,它可以對(duì)任何可迭代對(duì)象進(jìn)行排序,并返回列表。對(duì)列表升序操作:

對(duì)元組倒序操作:

使用參數(shù):key,根據(jù)自定義規(guī)則,按字符串長(zhǎng)度來(lái)排序:

根據(jù)自定義規(guī)則,對(duì)元組構(gòu)成的列表進(jìn)行排序:

4、reversed()如果需要對(duì)序列的元素進(jìn)行反轉(zhuǎn)操作,reversed()函數(shù)能幫到你。reversed()接受一個(gè)序列,將序列里的元素反轉(zhuǎn),并最終返回迭代器。

5、map()做文本處理的時(shí)候,假如要對(duì)序列里的每個(gè)單詞進(jìn)行大寫轉(zhuǎn)化操作。這個(gè)時(shí)候就可以使用map()函數(shù)。

map()會(huì)根據(jù)提供的函數(shù),對(duì)指定的序列做映射,最終返回迭代器。也就是說(shuō)map()函數(shù)會(huì)把序列里的每一個(gè)元素用指定的方法加工一遍,最終返回給你加工好的序列。舉個(gè)例子,對(duì)列表里的每個(gè)數(shù)字作平方處理:

6、reduce()前面說(shuō)到對(duì)列表里的每個(gè)數(shù)字作平方處理,用map()函數(shù)。那我想將列表里的每個(gè)元素相乘,該怎么做呢?這時(shí)候用到reduce()函數(shù)。

reduce()會(huì)對(duì)參數(shù)序列中元素進(jìn)行累積。第一、第二個(gè)元素先進(jìn)行函數(shù)操作,生成的結(jié)果再和第三個(gè)元素進(jìn)行函數(shù)操作,以此類推,最終生成所有元素累積運(yùn)算的結(jié)果。再舉個(gè)例子,將字母連接成字符串。

你可能已經(jīng)注意到,reduce()函數(shù)在python3里已經(jīng)不再是內(nèi)置函數(shù),而是遷移到了functools模塊中。這里把reduce()函數(shù)拎出來(lái)講,是因?yàn)樗匾恕?/p>

7、filter()一些數(shù)字組成的列表,要把其中偶數(shù)去掉,該怎么做呢?

filter()函數(shù)輕松完成了任務(wù),它用于過(guò)濾序列,過(guò)濾掉不符合條件的元素,返回一個(gè)迭代器對(duì)象。filter()函數(shù)和map()、reduce()函數(shù)類似,都是將序列里的每個(gè)元素映射到函數(shù),最終返回結(jié)果。我們?cè)僭囋嚕绾螐脑S多單詞里挑出包含字母w的單詞。

8、enumerate()這樣一個(gè)場(chǎng)景,同時(shí)打印出序列里每一個(gè)元素和它對(duì)應(yīng)的順序號(hào),我們用enumerate()函數(shù)做做看。

enumerate翻譯過(guò)來(lái)是枚舉、列舉的意思,所以說(shuō)enumerate()函數(shù)用于對(duì)序列里的元素進(jìn)行順序標(biāo)注,返回(元素、索引)組成的迭代器。再舉個(gè)例子說(shuō)明,對(duì)字符串進(jìn)行標(biāo)注,返回每個(gè)字母和其索引。

Python 之內(nèi)置函數(shù):filter、map、reduce、zip、enumerate

這幾個(gè)函數(shù)在 Python 里面被稱為高階函數(shù),本文主要學(xué)習(xí)它們的用法。

filter 函數(shù)原型如下:

第一個(gè)參數(shù)是判斷函數(shù)(返回結(jié)果需要是 True 或者 False),第二個(gè)為序列,該函數(shù)將對(duì) iterable 序列依次執(zhí)行 function(item) 操作,返回結(jié)果是過(guò)濾之后結(jié)果組成的序列。

簡(jiǎn)單記憶:對(duì)序列中的元素進(jìn)行篩選,獲取符合條件的序列。

返回結(jié)果為: ,使用 list 函數(shù)可以輸入序列內(nèi)容。

map 函數(shù)原型如下:

該函數(shù)運(yùn)行之后生成一個(gè) list,第一個(gè)參數(shù)是函數(shù)、第二個(gè)參數(shù)是一個(gè)或多個(gè)序列;

下述代碼是一個(gè)簡(jiǎn)單的測(cè)試案例:

上述代碼運(yùn)行完畢,得到的結(jié)果是: 。使用 print(list(my_new_list)) 可以得到結(jié)果。

map 函數(shù)的第一個(gè)參數(shù),可以有多個(gè)參數(shù),當(dāng)這種情況出現(xiàn)后,后面的第二個(gè)參數(shù)需要是多個(gè)序列。

map 函數(shù)解決的問(wèn)題:

reduce 函數(shù)原型如下:

第一個(gè)參數(shù)是函數(shù),第二個(gè)參數(shù)是序列,返回計(jì)算結(jié)果之后的值。該函數(shù)價(jià)值在于滾動(dòng)計(jì)算應(yīng)用于列表中的連續(xù)值。

測(cè)試代碼如下:

最終的結(jié)果是 6,如果設(shè)置第三個(gè)參數(shù)為 4,可以運(yùn)行代碼查看結(jié)果,最后得到的結(jié)論是,第三個(gè)參數(shù)表示初始值,即累加操作初始的數(shù)值。

簡(jiǎn)單記憶:對(duì)序列內(nèi)所有元素進(jìn)行累計(jì)操作。

zip 函數(shù)原型如下:

zip 函數(shù)將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表。

如果各個(gè)迭代器的元素個(gè)數(shù)不一樣,則返回列表長(zhǎng)度與最短的對(duì)象相同,利用星號(hào)( * )操作符,可以將元組解壓為列表。

測(cè)試代碼如下:

展示如何利用 * 操作符:

輸出結(jié)果如下:

簡(jiǎn)單記憶:zip 的功能是映射多個(gè)容器的相似索引,可以方便用于來(lái)構(gòu)造字典。

enumerate 函數(shù)原型如下:

參數(shù)說(shuō)明:

該函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在 for 循環(huán)當(dāng)中。

測(cè)試代碼如下:

返回結(jié)果為: 。

本文涉及的函數(shù)可以與 lambda 表達(dá)式進(jìn)行結(jié)合,能大幅度提高編碼效率。最好的學(xué)習(xí)資料永遠(yuǎn)是官方手冊(cè)

求幫助,Python閉包和返回函數(shù)問(wèn)題

(1)unpack tuple和list, 可以讓函數(shù)返回多個(gè)值

def count():

return (1, 2, 3) # 或者 return [1, 2, 3]

# 把列表解包,把1 2 3 分別賦值給 a b c

a, b, c = count()

print a, b, c

# 輸出 1, 2, 3

(2)假設(shè)你知道Python的dict類型。Python中,在函數(shù)中定義一個(gè)變量的時(shí)候,會(huì)在一個(gè)隱藏的叫l(wèi)ocals的dict里面插入key-value,其中key是變量名,value是變量值。而引用一個(gè)變量的時(shí)候,則首先會(huì)在這個(gè)叫l(wèi)ocals的dict里面,根據(jù)變量名作為key,去查對(duì)應(yīng)的值。

var = 1 # 你可以認(rèn)為這里進(jìn)行了 locals['var'] = 1 的操作

print var # 在對(duì)var變量進(jìn)行求值的時(shí)候,就在locals['var']里面找var變量對(duì)應(yīng)的值

(3)for循環(huán)中,每次循環(huán)只是給 `i` 重新綁定值

for i in (1, 2, 3):

print i

print i

# 一次輸入 1 2 3 3

每次`for i in (1, 2, 3)`相當(dāng)于在`print i`之前,進(jìn)行了

`locals['i'] = 1`

`locals['i'] = 2`

`locals['i'] = 3`

的操作

所以最后的`print i`再去locals字典里面找`i`的時(shí)候,就變成 3 了。

(4)閉包是 一個(gè)函數(shù)加上這個(gè)函數(shù)引用的外部變量

var = 1

def f():

print var

# 這里的閉包是函數(shù) f 和 f 引用的外部變量 var

def count():

var2 = 2

def f():

print var2

# 這里的閉包是函數(shù) f 和 f 引用的外部變量 var2

return f

拿第一個(gè)函數(shù) f 來(lái)說(shuō)。在 f 運(yùn)行的時(shí)候,解釋器拿著'var'這個(gè)字符串去locals字典里面找,發(fā)現(xiàn)找不到,于是在closure字典里面找,最后closure字典里面找,你可以認(rèn)為就是找closure['var'],然后發(fā)現(xiàn)找到對(duì)應(yīng)的值。count里面的 f 函數(shù)同理。

(為了容易理解,我這里說(shuō)謊了。實(shí)際上 f 壓根沒(méi)有closure,count里面的 f 才有。其實(shí)closure壓根不是像locals那樣的字典)

(5)函數(shù)定義時(shí),函數(shù)只是記錄變量的名字。

要區(qū)分什么是名字,什么是值。

`i = 1`這里 i 只是名字,只是一個(gè)字符串 'i' 。這句話運(yùn)行完,locals['i'] = 1,就說(shuō) i 對(duì)應(yīng)的值是1

def count():

fs = []

for i in range(1, 4):

# 定義一個(gè)函數(shù),等價(jià)于運(yùn)行了 locals['f'] = 真正生成的函數(shù)

# 每次循環(huán),這里都會(huì)重新生成一個(gè)函數(shù),然后把重新生成的函數(shù)賦值給 locals['f']

def f():

return i * i # 引用了'i'這個(gè)名字,但并不是引用了'i'對(duì)應(yīng)的值

# 等價(jià)于 locals['fs'].append(locals['f'])

# f 不是函數(shù),它只是一個(gè)名字'f'。f 引用的東西,也就是locals['f']才是真正的函數(shù)

fs.append(f)

# 于是這個(gè)for循環(huán)生成了三個(gè)函數(shù),這三個(gè)函數(shù)是沒(méi)有名字的,這個(gè)函數(shù)運(yùn)行完后,它們跟'f'這個(gè)名字就毛關(guān)系都沒(méi)有了(是的我說(shuō)慌了,但可以先不管)

# 把整個(gè)列表返回,這個(gè)列表包含了三個(gè)函數(shù)

return fs

# count()返回三個(gè)函數(shù)的列表,unpack 列表的語(yǔ)法把列表中的三個(gè)函數(shù)抽出來(lái),重新給他們命名為 f1, f2, f3

# 也就是說(shuō),

# locals['f1'] = 列表中的第1個(gè)函數(shù)

# locals['f2'] = 列表中的第2個(gè)函數(shù)

# locals['f3'] = 列表中的第3個(gè)函數(shù)

# 這三個(gè)函數(shù)跟'f'這個(gè)名字現(xiàn)在毛關(guān)系都沒(méi)有。(其實(shí)是有的,但為了說(shuō)明需要簡(jiǎn)化,現(xiàn)在你可以完全不管括號(hào)里面說(shuō)的話)

f1, f2, f3 = count()

print f1(), f2(), f3()

# 好了我們運(yùn)行它們,輸入都是 9

# def f():

# return i * i

這是因?yàn)?f1 現(xiàn)在對(duì)應(yīng)的函數(shù),里面引用了 'i' 這個(gè)字符串,我們根據(jù) 'i '這個(gè)字符串去找它對(duì)應(yīng)的值,先找到 f 當(dāng)前的locals字典,發(fā)現(xiàn)沒(méi)有,因?yàn)楹瘮?shù)定義的時(shí)候沒(méi)有定義 i 變量。然后再去closure['i']里面找,因?yàn)镻ython是通過(guò)closure字典實(shí)現(xiàn)閉包的(就當(dāng)它是對(duì)的好不好),所以我們可以在closure['i']找到值,這個(gè)值就是我們上一次運(yùn)行的時(shí)候count函數(shù)里面殘留的locals['i'],而由于for循環(huán)三遍之后,locals['i'] == 3,所以找到 i 的值就是3。所以最后輸出都是9

python中range()的用法是什么?

range()函數(shù)的用法如下:

(1)range(stop)

創(chuàng)建一個(gè)(0,stop)之間的整數(shù)序列,步長(zhǎng)為1。

(2)range(start,stop)

創(chuàng)建一個(gè)(start,stop)之間的整數(shù)序列,步長(zhǎng)為1。

(3)range(start,stop,step)

創(chuàng)建一個(gè)[start,stop)之間的整數(shù)序列,步長(zhǎng)為step。

參數(shù)介紹:

start:表示從返回序列的起始編號(hào),默認(rèn)情況下從0開(kāi)始。

stop:表示生成最多但不包括此數(shù)字的數(shù)字。

step:指的是序列中每個(gè)數(shù)字之間的差異,默認(rèn)值為1。

range()是Python的內(nèi)置函數(shù),在用戶需要執(zhí)行特定次數(shù)的操作時(shí)使用它,表示循環(huán)的意思。內(nèi)置函數(shù)range()可用于以列表的形式生成數(shù)字序列。在range()函數(shù)中最常見(jiàn)用法是使用for和while循環(huán)迭代序列類型(List,string等)。

簡(jiǎn)單的來(lái)說(shuō),range()函數(shù)允許用戶在給定范圍內(nèi)生成一系列數(shù)字。根據(jù)用戶傳遞給函數(shù)的參數(shù)數(shù)量,用戶可以決定該系列數(shù)字的開(kāi)始和結(jié)束位置以及一個(gè)數(shù)字與下一個(gè)數(shù)字之間的差異有多大。

python集合和函數(shù)

變量名={元素,元素,,,}

nums={11,24,45,96,28}

nums.add(42)

print(nums)

nums={11,24,45,96,28}

nums2=["anfly","tom"]

nums.update(nums2)

print(nums)

1)nums={11,24,45,96,28}? [沒(méi)有該數(shù)字報(bào)錯(cuò)]

? ?nums.remove(24)

? ?print(nums)

2)nums={11,24,45,96,28}? [隨機(jī)刪]

?nums.pop()

?print(nums)

3)nums={11,24,45,96,28}?[沒(méi)有該數(shù)字不會(huì)報(bào)錯(cuò)]

?nums.discard(24)

?print(nums)

交集:(存在相同元素)

set1={"anfly","tom","haha"}

set2={"anfly","susala"}

set3=set1set2

print(set3)

并集:(得到全部集合中全部的元素)

set1={1,2,3,4}

set2={3,4,5,6}

new_set=set1|set2

print(new_set)

運(yùn)算符 (+ * in)

內(nèi)置函數(shù) (len max min del)

列:set1 = {"1","2","3"}

? ? print(min(set1))

def函數(shù)名():

? ?執(zhí)行語(yǔ)句

函數(shù)名()

列:

defhello():

print("hello word")

hello()

2.函數(shù)參數(shù):

def? add2num():

a=11

b=22

c=a+b

print(c)

add2num()

3.位置參數(shù):

def? fun(a,b):

?print("a:",a)

?print("b:",b)

fun(2,3)

4.關(guān)鍵字參數(shù):

def? fun(a,b):

? print("a:",a)

?print("b:",b)

fun(a=2,b=3)? ?[第一個(gè)‘a(chǎn)’可以直接寫數(shù)字,也可以展示;第二個(gè)以及之后‘b’不能直接寫數(shù)字,要寫‘b=3’這種格式]

5.缺省參數(shù)

def printinfo(name,age=20):

? print("name:",name)

? print("age:",age)

printinfo(name="anfly")? [展示都能展示出來(lái)]

6.不定長(zhǎng)參數(shù)

1).*args[展示是元組]

defprintinfo(*args):

?print("args:",args)

printinfo(100,200,300,400)

2)**args[展示是k.v格式]

def printinfo(**kwargs):

?print("kwargs:",kwargs)

printinfo(a=100,b=200,c=300,d=400)

7.參數(shù)位置順序

def sun(a,*args,b=22,**kwargs):

? ? ?print("a:",a)? ? ? ? ==10

? ? ?print("args:",args)? ? ==(200,300)

? ? ?print("b:",b)? ? ==2

? ? ?print("kwargs:",kwargs)? =={‘m’:3,'n':4}

sun(100,200,300,b=2,m=3,n=4)

8.函數(shù)返回值

def fan(a,b):

? return a+b

print(fan(1,2))? #3

9.匿名函數(shù)(lambda函數(shù)也叫匿名函數(shù),即函數(shù)沒(méi)有具體的名稱)

案例一:

sum=lambda a,b:a+b

print(sum(1,2))? #3

案例二:

sum=lambda a,b:100

print(sum(1,2))? #100

1.局部變量

def jv():

? ?a=3?

? ?print(a)

def jv1():? ?

? ?a=99? ?

? ?print(a)

jv()? ? ? ?#3

jv1()? ? #99

2.全局變量

def jv():

? ?print(a)?

def jv1():? ?

? ? a=99? ?

? ? print(a)

jv()? ? ?#全局變量

jv1()? ? #99

3.局部變量升成全局變量

def jv():

? ? a=3?

? ? global b? ?

? ? ?b="我也是全局變量"?

? ? ? print(a)

def jv1():? ?

? ? ? ?a=99? ?

? ? ? ? print(a)? ?

? ? ? ? ?print(b)

jv()? ? ? ? ? #3

jv1()? ? ? ? #99 #“我也是全局變量”

Python中的常用內(nèi)置函數(shù)有哪些呢?

abs() divmod() input() open() staticmethod()

all() enumerate() int() ord() str()

any() eval() isinstance() pow() sum()

basestring() execfile() issubclass() print() super()

bin() file() iter() property() tuple()

bool() filter() len() range() type()

bytearray() float() list() raw_input() unichr()

callable() format() locals() reduce() unicode()

chr() frozenset() long() reload() vars()

classmethod() getattr() map() repr() xrange()

cmp() globals() max() reverse() zip()

compile() hasattr() memoryview() round() __import__()

complex() hash() min() set()

delattr() help() next() setattr()

dict() hex() object() slice()

dir() id() oct() sorted()


文章名稱:python閉集函數(shù) 函數(shù)閉包 python
文章位置:http://www.dlmjj.cn/article/hhcesj.html