首頁 > 軟體

淺析python中5個帶key的內建函數

2022-07-24 10:00:46

1.max取最大值函數

max() 方法返回給定引數的最大值,引數可以為序列。

lis = [1,2,3,-4]
print(max(lis)) #返回lis列表中的最大值
'''結果:
3
'''

print(max(lis,key=abs)) #key引數指向絕對值函數,返回的結果是-4

2.min取最小值函數

min() 方法返回給定引數的最小值,引數可以為序列。

lis = [-1,0,1,2]
print(min(lis)) #返回lis列表中的最小值
'''結果:
-1
'''

3.filter過濾函數

filter() 函數用於過濾序列,過濾掉不符合條件的元素,返回一個迭代器物件。

該接收兩個引數,第一個為函數,第二個為序列,序列的每個元素作為引數傳遞給函數進行判,然後返回 True 或 False,最後將返回True 的元素放到新列表中。

語法格式:filter(function, iterable)

範例1

def is_odd(x):
    return x % 2 == 1
print(list(filter(is_odd,[1,2,3,4,5,6,7,8,9]))) #python3中不使用list強轉資料型別的話,filter返回的是迭代器
'''結果:
[1, 3, 5, 7, 9]
'''

範例2

s = 'jason lv'
iterator = filter(lambda x : x !='a',s)
s1 = ''
for i in iterator:
    s1 += str(i)
print(s1)
'''結果:
json lv
'''

4.map序列對映函數

map() 會根據提供的函數對指定序列做對映。
第一個引數 function 以引數序列中的每一個元素呼叫 function 函數,返回一個迭代器物件。

語法格式:map(function, iterable, ...)

範例1

def pow2(x):
    return x * x

lis = [1,2,3,4,5,6]
print(list(map(pow2,lis)))
'''結果:
[1, 4, 9, 16, 25, 36]
'''

範例2

lis = [1,2,3,4,5,6]
print(list(map(lambda x : x *10 if x >3 else x / 2,lis)))
'''結果:
[0.5, 1.0, 1.5, 40, 50, 60]

5.sorted序列排序函數

Sort函數是list列表中的函數,而sorted可以對list或者iterator進行排序。

語法格式:sorted(iterable[, cmp[, key[, reverse]]])

引數說明:

(1) cmp引數

cmp接受一個函數,拿整形舉例,形式為:

def f(a, b):
    return a - b

如果排序的元素是其他型別的,如果a邏輯小於b,函數返回負數;a邏輯等於b,函數返回0;a邏輯大於b,函數返回正數就行了

(2)key引數

key也是接受一個函數,不同的是,這個函數只接受一個元素, 形式如下

def f(a):
    return len(a)

key接受的函數返回值,表示此元素的權值,sort將按照權值大小進行排序

(3)reverse引數

接受False
或者True

表示是否逆序

語法格式:sorted(iterable[, cmp[, key[, reverse]]])
範例1

lis = [3,2,1,4,5,6]
print(list(sorted(lis,reverse=True)))
'''結果
[6, 5, 4, 3, 2, 1]
'''
print(list(sorted(lis)))    #預設不指定reverse引數時,順序是正序
'''結果
[1, 2, 3, 4, 5, 6]
'''

範例2

lis = ['adf ee','zcv','qwer','a s s w']
print(list(sorted(lis,key=len)))
'''結果:
['zcv', 'qwer', 'adf ee', 'a s s w']
'''

到此這篇關於淺析python中5個帶key的內建函數的文章就介紹到這了,更多相關python帶key的內建函數內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com