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#reduce函式,傳入函式必須接收兩個引數,每次把可迭代物件的兩個元素引數作為函式的實參傳入到函式中,# -*- coding:utf8 -*-
# @time : 2017/11/2 9:32
# @author : hantong
# @file : func.py
# 每次運算的結果作為第乙個實參,可迭代物件的下乙個元素作為另乙個實參,傳入函式中,以此類推
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...