<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在日常的python程式設計中使用這幾個函數來簡化我們的程式設計工作,經常使用能使程式設計效率大大地提高。
map函數可以使用另外一個函數轉換整個可迭代物件的函數,包括將字串轉換為數位、數位的四捨五入等等。
之所以使用map函數來完成這些事情可以節約記憶體,使程式碼的執行速度提高,並且使用的程式碼量比較少。
比如這裡需要將一個字串的陣列轉換成數位的陣列的形式。
使用傳統的方式來進行解析的話,使用for迴圈的方式就需要好幾行的程式碼才能完成。
strings = ['1', '2', '3', '4'] res = [] for str_ in strings: res.append(int(str_)) print(res) # [1, 2, 3, 4]
使用map函數直接需要一行程式碼就可以完成了。
strings = ['5', '6', '7', '8'] res_map = map(int, strings) print(list(res_map)) # [5, 6, 7, 8]
使用map(int,strings),其中int是作為函數作為引數傳入的,而strings就是可以迭代的物件。
這裡再使用一個我們自己建立的函數來轉換可序列化的資料。
初始化一個make_super函數用來將英文字串轉換成'大寫'的字串。
def make_super(text): res_text = text.upper() return res_text words = ['python', 'java', 'scala'] words_res = list(map(make_super, words)) print(words_res) # ['PYTHON', 'JAVA', 'SCALA']
使用map(make_super, words),其中make_super是作為函數傳入的,而words作為可序列化資料。
lambda 函數用於建立匿名函數,又被稱為lambda表示式。實際上它只是一個表示式的存在,如果在程式碼編寫過程中需要實現簡單的函數邏輯但是單獨寫一個函數又比較麻煩就可以使用lambda表示式只需要一行程式碼就可以完成了。
比如需要實現一個簡單的加法計算,使用基本的函數來實現需要建立一個add_1函數。
def add_1(a, b): return a + b print(add_1(5, 2))
而使用lambda表示式,一行程式碼就可以直接完成了,可以像下面這樣寫。
add_2 = lambda a, b: a + b print(add_2(10, 10))
lambda a,b: a + b 表示a,b是作為引數,a + b是作為函數的運算邏輯被執行。
enumerate 函數一般用於可序列化資料的處理上面,而python中的可序列化資料又比較多,重要性就可想而知了。
可以使用該函數直接遍歷出一個可序列化資料的下標索引以及對應的資料。
使用一個列表資料來進行舉例說明。
words = ['java', 'python', 'scala']
使用enumerate函數來執行一下整個遍歷,最終返回一個新的列表。
for index, data in enumerate(words): print(f'當前索引:{index},當前資料:{data}') # 當前索引:0,當前資料:java # 當前索引:1,當前資料:python # 當前索引:2,當前資料:scala
看到返回的結果中包含了索引、資料,這樣便於資料的組織和統計,因此,將該函數也列為比較常用的函數之一。
reduce函數通常用於計算整個列表的邏輯運算,也就是將一個函數的運算可以新增到這個列表的每個元素上面。
''' reduce(function, iterable[, initializer]) '''
比如需要計算一個列表中每個元素之間的相乘的結果,則可以這樣寫。
from functools import reduce list_ = [10, 20, 30, 40] print(reduce(lambda a, b: a * b, list_))
這裡由於函數的邏輯運算比較簡單,所以使用了lambda表示式表示兩個元素相乘。
最終再使用reduce函數,它的效果相當於10 * 20 * 30 * 40,結果就是240000,和我們預想得到的計算結果是一致的。
filter函數,從字面意思就可以看出它是過濾的意思,使用該函數可以有效的過濾掉不需要的列表中的資料元素。
''' filter(function, iterable) '''
在邏輯處理中,同樣是需要一個處理常式和一個可序列化的資料。
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 20] nums_new = filter(lambda m: m % 2 == 0, nums) print(list(nums_new)) # [2, 4, 6, 8, 20]
這裡我們成功過濾掉了所有的奇數資料元素,最終只留下了偶數元素。
zip函數在多個列表的組裝過程中用到非常的多,可以同時遍歷多個列表並將相同位置的元素組合成一個元祖。
list_res = [] for n in zip([1, 2, 3, 4, 5], ['python', 'java', 'scala', 'c++', 'C#']): list_res.append(n) print(list_res) # [(1, 'python'), (2, 'java'), (3, 'scala'), (4, 'c++'), (5, 'C#')]
使用zip函數時,像這樣的資料組合就可以輕鬆的實現。
通過觀察上述的這些操作發現基本上都是對可序列化的資料的相關操作,因為在python的編碼過程中大多數的資料處理相關的操作都是基於可序列化的資料的。
以上就是六個Python程式設計最受用的內建函數使用詳解的詳細內容,更多關於Python內建函數的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45