Python的一些高階函式

2021-09-24 02:07:15 字數 2190 閱讀 6616

1.zip()函式

作用:zip函式結果是乙個可迭代物件,前面加上list,tuple,dict才可以列印出來,把兩個可迭代物件進行一對一取出,這兩個取出的元素放入乙個元祖裡,最後的結果是乙個可迭代物件

引數:括號裡必須參入兩個可迭代物件

ziper=list(zip((1,2,3),(4,5,6)))

print(ziper)

ziper2=list(zip([1,2,3],[4,5,6]))

print(ziper2)

ziper3=list(zip(,))

print(ziper3)

結果:

[(1, 4), (2, 5), (3, 6)]

[(1, 4), (2, 5), (3, 6)]

[(1, 4), (2, 5), (3, 6)]

2.map()函式

作用:把可迭代物件裡的引數依次放入函式裡,結果放進乙個可迭代物件裡,前面加上list,tuple,dict才可以列印出來

引數:map()括號裡第乙個引數必須是函式,另乙個是可迭代物件

def f(x):

return x * x

r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])

print(list®

結果:[

1, 4, 9, 16, 25, 36, 49, 64, 81]

3.reduce()函式

注意:用前需匯入 from functools import reduce作用:把乙個函式作用在乙個序列上,把序列的前兩個值作為引數傳入函式中,然後把結果與第三個值繼續傳入函式中,以此類推…

引數:reduce()函式需要接受兩個引數,第一是函式,這個函式必須要是需要傳入兩個引數的函式,第二個是乙個序列.

from functools import reduce

def add(x, y):

return x + y

a=reduce(add, [1, 3, 5, 7, 9])

print(a)

結果:25

4.filter()函式

作用:把傳入的函式,一次作用於每乙個元素,然後根據返回值是true還是false決定保留還是丟棄.返回值是乙個可迭代物件

引數:filter()括號裡第乙個引數必須是函式,另乙個是可迭代物件

def panduan(x):

if x>=0:

return true

else:

return false

xbs=filter(panduan,[-5,-2,-3,-6,0,1,2,3,4,5,6])

print(list(xbs))

結果:[0, 1, 2, 3, 4, 5, 6]

5.sorted()函式

作用:對所有可迭代物件進行排序操作

引數:第乙個是可迭代物件;

第二個cmp是比較的函式,這個函式必須有兩個引數,引數的值都是從可迭代物件中取出,此函式必須遵守的規則為,大於則返回1,小於則返回-1,等於返回0;

第三個key是用來進行比較的元素;

第四個是排序規則reverse,true 降序,false公升序(預設)

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

b=sorted(a)

print(b)

l = [(『b』, 2), (『a』, 1), (『c』, 3), (『d』, 4)]

n=sorted(l, key=lambda x: x[1])

## 利用key

print(n)

結果:

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

[(『a』, 1), (『b』, 2), (『c』, 3), (『d』, 4)]

python的一些高階函式的使用

產生原因 受到記憶體限制,我們希望生成的大列表取出時不是從記憶體中整個取出,而是取出乙個,按照某種演算法依次推理出先乙個元素的位置。生成方式 l x x for x in range 10 可迭代物件 g x x for x in range 10 生成器 生成,也可利用yield生成 兩者的區別 ...

一些SQL高階函式

posted on 2010 08 08 21 34 收藏長度與分析用 datalength char expr 返回字串包含字元數,但不包含後面的空格 substring expression,start,length 不多說了,取子串 right char expr,int expr 返回字串右...

一些python高階語法

enum列舉是乙個類。from enum import enum class vip enum green 1 print vip.green.value 通過.value訪問green標籤對應值 name獲取標籤名 列舉型別,列舉名字,列舉值是三個概念 for v in vip print v 遍...