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

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的內置函數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: