abs()
返回數字的絕對值
map
根據函數對指定序列做映射map()函數接收兩個參數,一個是函數,一個是可迭代對象,map將傳入的函數依次作用到序列的每個元素,并把結果作為新的list返回。返回值:Python2返回列表Python3返回迭代器例子1:
defmul(x):
returnx*x
n=[1,2,3,4,5]
res=list(map(mul,n))
print(res)#[1,4,9,16,25]例子2:abs()返回數字的絕對值ret=map(abs,[-1,-5,6,-7])print(list(ret))#[1,5,6,7]
filter
filter()函數接收一個函數f(函數)和一個list(可迭代對象),這個函數f的作用是對每個元素進行判斷,返回True或False,
filter()根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。
defis_odd(x):
returnx%2==1
v=list(filter(is_odd,[1,4,6,7,9,12,17]))
print(v)#[1,7,9,17]
map與filter總結
#filter與map總結
#參數:都是一個函數名+可迭代對象
#返回值:都是返回可迭代對象
#區別:
#filter是做篩選的,結果還是原來就在可迭代對象中的項
#map是對可迭代對象中每一項做操作的,結果不一定是原來就在可迭代對象中的項
isinstance\type
isinstance()函數來判斷一個對象是否是一個已知的類型,類似type()。
isinstance()與type()區別:
type()不會認為子類是一種父類類型,不考慮繼承關系。
isinstance()會認為子類是一種父類類型,考慮繼承關系。
如果要判斷兩個類型是否相同推薦使用isinstance()。
#例一a=2print(isinstance(a,int))#Trueprint(isinstance(a,str))#False
#type()與isinstance()區別
classA:
pass
classB(A):
pass
print("isinstance",isinstance(A(),A))#isinstanceTrue
print("type",type(A())==A)#typeTrue
print('isinstance',isinstance(B(),A))#isinstanceTrue
print('type',type(B())==A)#typeFalse
zip拉鏈函數
#zip拉鏈函數,
#將對象中對應的元素打包成一個個元組,
#然后返回由這些元組組成的列表迭代器。
#如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同。
print(list(zip([0,1,3],[5,6,7],['a','b'])))
#[(0,5,'a'),(1,6,'b')]
zip()函數用于將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表。
>>>a=[1,2,3]
>>>b=[4,5,6]
>>>c=[4,5,6,7,8]
>>>zipped=zip(a,b)#打包為元組的列表
[(1,4),(2,5),(3,6)]
>>>zip(a,c)#元素個數與最短的列表一致
[(1,4),(2,5),(3,6)]
>>>zip(*zipped)#與zip相反,可理解為解壓,返回二維矩陣式
[(1,2,3),(4,5,6)]
reduce
'''
reduce()函數
reduce()函數會對參數序列中元素進行累積
函數將一個數據集合(鏈表、元組等)中的所有數據進行下列操作
'''
注意:
Python3已經將reduce()函數從全局名字空間里移除了,它現在被放置在fucntools模塊里,如果想要使用它,則需要通過引入functools模塊來調用reduce()函數:
fromfunctoolsimportreduce
defadd(x,y):
returnx+y
print(reduce(add,[1,2,3,4,5]))
#15
print(reduce(lambdax,y:x+y,[1,2,3,4,5]))#15
print(reduce(add,range(1,101)))
#5050
以上內容為大家介紹了Python之列舉常見的內置函數,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。