說說那些我也不太懂的 Python 高階函式

2021-07-26 13:42:12 字數 1589 閱讀 7132

map 本身接收 2 個引數:乙個函式、乙個列表, 將 func 作用在 list 中的每乙個元素上並返回乙個新的 list

egg:我們要將公司每個人的薪水提高 40% 並列印出來,就可以這樣完成

#! /usr/bin/env python

# -*- coding: utf-8 -*-

bob = ['bob smith', 42, 3000, 'software']

sue = ['sue jones', 45, 4000, 'hardware']

employee = [bob,sue]

defpayraise

(salary):

salary *= 1.4

return salary

print(list(map(payraise, [e[2] for e in employee]))) # 這裡用到了列表解析器

# 列印結果為:[4200.0, 5600.0]

reduce 本身接收 2 個引數:乙個函式、乙個列表,與 map 不同之處在於 map 接收的函式只能接收乙個引數,而 reduce 接收的函式只能接收2個引數,reduce 依次反覆對 list 中每乙個元素進行 func 操作,並將最終結果返回

egg:我們要將乙個列表中所有的數求和,就可以這樣完成

#! /usr/bin/env python

# -*- coding: utf-8 -*-

from functools import reduce

# 在 python 3 裡,reduce()函式已經被從全域性名字空間裡移除了,它現在被放置在 fucntools 模組裡,用的話要先導入

score = [1,2,3,4,5,6,7]

defmysum

(a, b):

return a + b

print(reduce(mysum, score))

# 列印結果為:28

filter 本身也接受2個引數:乙個函式,乙個列表, 將 func 作用在 list 中的每乙個元素上進行判斷,將判斷結果為 true 的元素返回,並生成乙個生成器物件

egg:我們要得到 1-100 裡面所有的奇數,就可以這樣完成

#! /usr/bin/env python

# -*- coding: utf-8 -*-

defis_odd

(x):

return x % 2 != 0

all_num = range(1,101) # python 3 中 range 函式返回生成器物件

odd_generator = filter(is_odd, list(all_num)) # filter 函式然會生成器物件

print(list(odd_generator)) # 列印列表

# 列印結果為:1-100 所有奇數

我也說說bogomips

曾經一直很困惑linux是如何實現udelay的,因為如果使用cpu中斷,每一微秒就中斷加1,那麼cpu就會一直不停的處理中斷,這樣對於cpu的負荷是很大的。那麼肯定不能這麼去設計。那麼回憶一下曾經是如何做8051微控制器的延時的,那時計算乙個指令週期,然後讓乙個指令迴圈多次,然後做出延遲的效果。其...

我也說說OpenSSO

昨天看到oracle要關閉opensso的訊息,還說要停止原始碼的下載,我立刻cvs了一下.說來也巧呀,最近正在做sso的東西,專案經理讓我先研究一下opensso這個專案,正好昨天要下載它的原始碼,呵呵.個人覺得opensso這個專案還是很不錯的,看它的features,確實使挺大,支援的特性比較...

我也說說CIO

cio chief imformation office 資訊管理辦公室的領導。前面看到有一文說,中國企業裡面通常叫it主管,或資訊辦主任,不叫cio。的確,我贊同文中的觀點,很多企業對於資訊化的重視程度遠遠不夠,另外很多it主管本身沒有把自已定位在cio的角色也有關係。從我個人的理解來說,cio至...