国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python基礎學習之常見的內建函數整理

2020-02-16 10:10:48
字體:
來源:轉載
供稿:網友

 前言

Python針對眾多的類型,提供了眾多的內建函數來處理,這些內建函數功用在于其往往可對多種類型對象進行類似的操作,即多種類型對象的共有的操作,下面話不多說了,來一看看詳細的介紹吧。

map()

map()函數接受兩個參數,一個是函數,一個是可迭代對象(Iterable),map將傳入的函數依次作用到可迭代對象的每一個元素,并把結果作為迭代器(Iterator)返回。

舉例說明,有一個函數f(x)=x^2 ,要把這個函數作用到一個list[1,2,3,4,5,6,7,8,9]上:

運用簡單的循環可以實現:

>>> def f(x):...  return x * x...L = []for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]: L.append(f(n))print(L)

運用高階函數map()

>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])>>> list(r)[1, 4, 9, 16, 25, 36, 49, 64, 81]

結果r是一個迭代器,迭代器是惰性序列,通過list()函數讓它把整個序列都計算出來并返回一個list。

如果要把這個list所有數字轉為字符串利用map()就簡單了:

>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))['1', '2', '3', '4', '5', '6', '7', '8', '9']

小練習:利用map()函數,把用戶輸入的不規范的英文名字變為首字母大寫其他小寫的規范名字。輸入['adam', 'LISA', 'barT'],輸出['Adam', 'Lisa', 'Bart']

def normalize(name):  return name.capitalize() l1=["adam","LISA","barT"] l2=list(map(normalize,l1)) print(l2)

reduce()

reduce()函數也是接受兩個參數,一個是函數,一個是可迭代對象,reduce將傳入的函數作用到可迭代對象的每個元素的結果做累計計算。然后將最終結果返回。

效果就是:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

舉例說明,將序列[1,2,3,4,5]變換成整數12345:

>>> from functools import reduce>>> def fn(x, y):...  return x * 10 + y...>>> reduce(fn, [1, 2, 3, 4, 5])12345

小練習:編寫一個prod()函數,可以接受一個list并利用reduce求積:

from functools import reducedef pro (x,y):  return x * y def prod(L):  return reduce(pro,L) print(prod([1,3,5,7]))

map()reduce()綜合練習:編寫str2float函數,把字符串'123.456'轉換成浮點型123.456

CHAR_TO_FLOAT = { '0': 0,'1': 1,'2': 2,'3': 3,'4': 4,'5': 5,'6': 6,'7': 7,'8': 8,'9': 9, '.': -1}def str2float(s): nums = map(lambda ch:CHAR_TO_FLOAT[ch],s) point = 0 def to_float(f,n):   nonlocal point   if n==-1:    point =1    return f   if point ==0:    return f*10+n   else:    point =point *10    return f + n/point return reduce(to_float,nums,0)#第三個參數0是初始值,對應to_float中f            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 于都县| 娄烦县| 巨鹿县| 边坝县| 育儿| 四子王旗| 吴川市| 安西县| 同江市| 项城市| 上思县| 涡阳县| 边坝县| 阿克| 盐边县| 扎囊县| 阳原县| 东阳市| 天长市| 若尔盖县| 昭通市| 南汇区| 精河县| 五峰| 衡阳市| 买车| 莎车县| 乌拉特中旗| 洛扎县| 祁阳县| 遂昌县| 沙湾县| 东乌珠穆沁旗| 和林格尔县| 永顺县| 红河县| 千阳县| 太谷县| 保德县| 武清区| 宜黄县|