Python之函式簡析 二

2021-08-10 05:12:31 字數 3453 閱讀 4144

python之函式

本節重點理解一下map,reduce,filter,lambda,sorted函式的用法

map函式例項:

#!/usr/bin/env python

# -*- coding:utf8 -*-

# @time     : 2017/11/2 9:32

# @author   : hantong

# @file     : func.py

#map函式,返回乙個列表,第乙個是自定義函式,第二個是可迭代物件

print('###############map###################')

lt = [1,2,3,4,5,6]

def map(x):

#只有乙個引數

return x*x

l1 = map(map,lt)

print(type(l1))

print(l1)

執行結果

###############map###################

[1, 4, 9, 16, 25, 36]

reduce函式例項:

#!/usr/bin/env python

# -*- coding:utf8 -*-

# @time : 2017/11/2 9:32

# @author : hantong

# @file : func.py

#reduce函式,傳入函式必須接收兩個引數,每次把可迭代物件的兩個元素引數作為函式的實參傳入到函式中,

# 每次運算的結果作為第乙個實參,可迭代物件的下乙個元素作為另乙個實參,傳入函式中,以此類推

print('##############reduce#################')

def f(x,y):

#兩個引數

return x+y

print(reduce(f,[1,2,3,4,5],10))

執行結果:

##############reduce#################25

filter函式用法例項:

#!/usr/bin/env python

# -*- coding:utf8 -*-

# @time     : 2017/11/2 9:32

# @author   : hantong

# @file     : func.py

#filter函式

#每次把可迭代物件的元素傳入進去,如果返回為true,則保留該元素,否則不保留

print('###############filter################')

a = [1,2,3,4,5,6]

def is_odd(x):

#乙個引數

return x%2 == 1

#返回值餘數為1的為true則保留下來,其餘捨棄

print(filter(is_odd,a))

def is_odd(x):

return x%2 == 0

#返回值餘數為0的為true則保留下來,其餘捨棄

print(filter(is_odd,a))

執行結果:

###############filter################

[1, 3, 5]

[2, 4, 6]

lambda匿名函式例項:

#!/usr/bin/env python

# -*- coding:utf8 -*-

# @time     : 2017/11/2 10:17

# @author   : hantong

# @file     : func2.py

#匿名函式(lambda)

print('##########lambda###########')

def sum(x,y):

return x+y

m = lambda x,y:x+y

#lambda函式格式請注意

print(m(4,5))

執行結果:

##########lambda###########9

sorted函式用法例項:

#!/usr/bin/env python

# -*- coding:utf8 -*-

# @time     : 2017/11/2 10:17

# @author   : hantong

# @file     : func2.py

#sorted()函式,對字典進行排序

print('##########字典排序##########')

mm = dict(a=1,b=2,c=10,d=9,k=11,e=20,f=12,g=7)

print(mm)

for i in mm:

print i

for k ,v in mm.iteritems():

print(k,v)

print('##################')

test = sorted(mm.iteritems(),key=lambda e: e[1])

test1 = sorted(mm.iteritems(),key=lambda e: e[0])

#此處注意:key=lambda e:  e[1],key=lambda是匿名函式,e: e[1]表示下標為1,比如('c',10),就表示10,而e可以自己定義,

# 比如寫成d也行,當下標寫成0的時候,就是以字典中k值排序

print(test)

print(test1)

執行結果:

##########字典排序##########ac

bedg

fk('a', 1)

('c', 10)

('b', 2)

('e', 20)

('d', 9)

('g', 7)

('f', 12)

('k', 11)

##################

[('a', 1), ('b', 2), ('g', 7), ('d', 9), ('c', 10), ('k', 11), ('f', 12), ('e', 20)]

[('a', 1), ('b', 2), ('c', 10), ('d', 9), ('e', 20), ('f', 12), ('g', 7), ('k', 11)]

Python內建函式簡析

參考python built in function 輸入 整數或者浮點數 輸出 絕對值 all iterable 如果輸入的可迭代物件中的元素都為true 或者這個物件沒有元素 那麼函式返回true list all list true any iterable 如果可迭代物件中的元素存在為tru...

Python學習筆記之exec函式簡析

個人部落格,支援一下唄!本文首發於ray s blog exec 函式的作用 動態執行python 也就是說exec 可以執行複雜的python 而不像eval 函式那樣只能計算乙個表示式的值。舉乙個簡單的小例子,如下 i 12 j 13 exec answer i j print answer i...

strtok函式簡析

官方的strtok函式,用來通過分隔字元 不支援字串,傳入的串中每個字元單獨當分隔符,如下例子組合的如123會處理1而23會被跳過 返回分隔的串的首位址 比如呼叫strtok abc123def 123456 返回值是指向abc的指標 下次要獲得 def 需要呼叫strtok null,123456...