1.map
map()函式接收兩個引數,乙個是函式,乙個是序列
map將傳入的函式依次作用到序列的每個元素,並且把結果
作為新的序列返回
#求絕對值:
print((map(abs,[-1,3,-4,-5])))
輸出:、
map列印的不是乙個列表而是乙個物件,所以我們需要轉換為列表才能列印。
print(list(map(abs,[-1,3,-4,-5])))
輸出:[1, 3, 4, 5]
# 需求:使用者接收一串數字;講該字串中的所有數字轉化為整型
# 並以列**式輸出
num = input('')
def isint(num):
return int(float(num))
print(list(map(isint,num.split(' '))))
# 對於序列的每個元素求階乘
def factoria(x):
"""對與x求階乘"""
res = 1
for i in range(1,x+1):
res = res * i
return res
li = [random.randint(2,7) for i in range(10)]
print(list(map(factoria,li)))
輸出:[24, 5040, 2, 2, 24, 120, 2, 24, 720, 5040]
2.reduce
reduce:把乙個函式作用在乙個序列上,這個函式必須接收兩個引數
reduce把結果繼續和序列的下乙個元素做累積計算
reduce(f,[x1,x2,x3,x4]) = f(f(f(x1,x2),x3),x4)
例1:3的階乘
from functools import reduce
"""python2:reduce為內建函式
python3:from functools import reduce,這裡我用的python3
"""def multi(x,y):
return x*y
print(reduce(multi,range(1,4)))
輸出: 6
例2:求1-5的和
def add(x,y):
return x+y
print(reduce(add,[1,2,3,4,5]))
輸出:15
3.filter 過濾函式
和map()類似,filter()也接收乙個函式和乙個序列
但是和map()不同的是,filter()把傳入的函式依次作用於每個元素,
然後根據返回值是true還是false決定保留還是丟棄該元素.
例1:100以內的偶數
#只能乙個形參,函式的返回值只能是true或者false
def isodd(num):
if num %2==0:
return true
else:
return false
print(list(filter(isodd,range(100))))
4.sorted
.sort()與sorted()的區別:
li = [1,2,4,6,3]
li.sort() # sort在原有列表中排序
print(li)
a = sorted(li) # sorted是給新生成變數排序
print(a)
#預設sort和sorted方法由小到大進行排序,reverse=true 由大到小進行排序
a = sorted(li,reverse=true)
print(a)
這裡sorted()是乙個高階函式,我們來了解一下他的用法:
info = [
# 商品名稱 商品數量 商品**
]#預設按照商品數量進行排序
print(sorted(info))
輸出:
怎麼樣按照商品數量和商品**排序呢?
1.商品數量
info = [
# 商品名稱 商品數量 商品**
]def sorted_by_count(x):
return x[1]
print(sorted(info,key=sorted_by_count)) # key代表排序的關鍵字
輸出:
2.商品**
info = [
# 商品名稱 商品數量 商品**
]# 按照商品**進行排序
def sorted_by_price(x):
return x[2]
print(sorted(info,key=sorted_by_price)) # key代表排序的關鍵字
輸出:
如果商品數量一致時候怎麼辦?如果商品數量一致,則按照商品**由小到大進行排序。
#先按照商品數量由小到大進行排序,如果商品數量一致,
#則按照商品**由小到大進行排序
def sorted_by_count_price(x):
return x[1], x[2]
print(sorted(info, key=sorted_by_count_price)) # key代表排序的關鍵字
python 內建高階函式
1.map abs i for i in 1,3,4,5 1 對於序列每個元素求絕對值 import random from functools import reduce print list map abs,1,3,4,5 2 對於序列每個元素求階乘 5 import random deffac...
Python 內建高階函式
map是python 內建的高階函式,其可以傳入倆個引數,第乙個引數是函式,第二個引數是乙個iterable例如list。def aa a return a a r map aa,1,2,3,4 map的返回值是乙個iterator需要使用list 或者for 輸出所有元素。print a for ...
python(內建高階函式)
1.高階函式介紹 2.內建高階函式 1 map function,iterable 函式 將列表 a 中的元素全部轉換成字串 a 1,2,3,4 b map str,a print list b 將下面stu列表中的姓氏進行首字母大寫操作 stu zhao qian sun li 自定義首字母大寫方...