python內建(builtins)的高階函式:
map, filter, sorted
map 函式:
map(func, *iterables) 用函式對可迭代物件中的每乙個元素作為引數計算出新的可迭代物件,當最短的乙個可迭代物件不再提供資料時,此可迭代物件生成結束
示例 :
# 生成乙個可迭代物件,要求此可迭代物件可以生成1~9自然數的平方
1, 4, 9, 16, .... 81
def power2(x):
return x**2
for x in map(power2, range(1, 10)):
print(x)
# 求以上資料的和 1 + 4 + 9 + 16 + ... + 81
print(sum(map(power2, range(1, 10))))
示例:# 生成乙個可迭代物件, 要求此可迭代物件生成
# 1**4, 2**3, 3**2, 4**1
# 1 8 9 4
for x in map(pow, [1,2,3,4], [4,3,2,1]):
print(x)
filter函式:
格式:filter(func, iterable)
作用:篩選可迭代物件iterable中的資料,返回乙個可迭代物件,此可迭代物件將對iterable進行篩選
函式func 將對iterable中的每個元素進行求值,返回false時將此資料丟棄,返回true,則保留此資料
示例:# isodd函式判斷x是否為奇數,是奇數返回true
def isodd(x):
return x % 2 == 1
# 列印10以內的奇數:
for x in filter(isodd, range(10)):
print(x)
# 生成10以內所有偶數的列表,用filter實現
l = [x for x in filter(lambda x: x%2==0, range(10))]
sorted 函式:
作用:將原可迭代物件的資料進行排序,生成排序後的列表
格式:sorted(iterable, key=none, reverse=false)
引數說明:
iterable 可迭代物件
key 繫結函式,此函式用來提供乙個排序的依據
reverse 標誌用來設定是否降序排序(從大到小)
示例:l = [5, -2, -4, 0, 3, 1]
l2 = sorted(l) # l2 = [-4, -2, 0, 1, 3, 5]
l3 = sorted(l, reverse=true) l3=[5,3,1...]
l = [5, -2, -4, 0, 3, 1]
# 依據: abs(5), abs(-2), abs(-4), abs(0), ...
l4 = sorted(l, key=abs) # l4 =[0, 1, -2, 3, -4, 5]
names = ['tom', 'jerry', 'spike', 'tyke']
l = sorted(names) # l = ['jerry', 'spike', 'tom', 'tyke']
# 能否根據名字的長度進行排序?
l2 = sorted(names, key=len) # l2 = ['tom', 'tyke', 'jerry', 'spike']
def fr(s):
return s[::-1]
l3 = sorted(names, key=fr)
C語言內建函式 builtin
首先內建函式有的屬於預編譯,有的屬於執行過程的函式,這一點我現在還不是很清楚,待以後進一步詳細討論。然後我們給出乙個長 裡面包含了常用的c語言內建函式,參考文章見文末。總覽 include include 返回x中最後乙個為1的位是從後向前的第幾位 000101000 4 8 4 define ff...
c 常見Built in總結
1 判斷是否為數字或字母 isalpha 如果是字母,返回乙個非零數 否則,返回0 isdigit 如果是數字 0 9 返回乙個非零數 否則,返回0 isalnum 如果是字母或數字,返回乙個非零數 否則,返回0 2 獲得長度 vector的長度 vectora return a.size stri...
高效位運算 builtin
int builtin ffs unsigned int x 返回x的最後一位1的是從後向前第幾位,比如7368 1110011001000 返回4。int builtin clz unsigned int x 返回前導的0的個數。int builtin ctz unsigned int x 返回後...