内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

偏函數(shù)怎么在Python中使用-創(chuàng)新互聯(lián)

這篇文章給大家介紹偏函數(shù)怎么在Python中使用,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

網(wǎng)站設(shè)計制作、做網(wǎng)站服務(wù)團隊是一支充滿著熱情的團隊,執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標準與要求,同時竭誠為客戶提供服務(wù)是我們的理念。成都創(chuàng)新互聯(lián)公司把每個網(wǎng)站當做一個產(chǎn)品來開發(fā),精雕細琢,追求一名工匠心中的細致,我們更用心!

python中偏函數(shù)

當一個函數(shù)有很多參數(shù)時,調(diào)用者就需要提供多個參數(shù)。如果減少參數(shù)個數(shù),就可以簡化調(diào)用者的負擔。

比如,int()函數(shù)可以把字符串轉(zhuǎn)換為整數(shù),當僅傳入字符串時,int()函數(shù)默認按十進制轉(zhuǎn)換:

>>> int('12345')
12345

int()函數(shù)還提供額外的base參數(shù),默認值為10。如果傳入base參數(shù),就可以做 N 進制的轉(zhuǎn)換:

>>> int('12345', base=8)
5349
>>> int('12345', 16)
74565

假設(shè)要轉(zhuǎn)換大量的二進制字符串,每次都傳入int(x, base=2)非常麻煩,于是,我們想到,可以定義一個int2()的函數(shù),默認把base=2傳進去:

def int2(x, base=2):
  return int(x, base)

這樣,我們轉(zhuǎn)換二進制就非常方便了:

>>> int2('1000000')
64
>>> int2('1010101')
85

functools.partial就是幫助我們創(chuàng)建一個偏函數(shù)的,不需要我們自己定義int2(),可以直接使用下面的代碼創(chuàng)建一個新的函數(shù)int2:

>>> import functools
>>> int2 = functools.partial(int, base=2)
>>> int2('1000000')
64
>>> int2('1010101')
85

所以,functools.partial可以把一個參數(shù)多的函數(shù)變成一個參數(shù)少的新函數(shù),少的參數(shù)需要在創(chuàng)建時指定默認值,這樣,新函數(shù)調(diào)用的難度就降低了。

任務(wù)

在第7節(jié)中,我們在sorted這個高階函數(shù)中傳入自定義排序函數(shù)就可以實現(xiàn)忽略大小寫排序。請用functools.partial把這個復(fù)雜調(diào)用變成一個簡單的函數(shù):

sorted_ignore_case(iterable)

要固定sorted()的cmp參數(shù),需要傳入一個排序函數(shù)作為cmp的默認值。

參考代碼:

#!/usr/bin/python
#coding: utf-8
import functools
# cmp = lambda s1, s2: cmp(s1.upper(), s2.upper()) 最左邊一定要有cmp = , 這樣執(zhí)行print的時候會執(zhí)行
# 匿名函數(shù)中的cmp函數(shù),關(guān)于為什么使用cmp = ,請看上面的例子中,base = 2, 如果說沒有base = 的話,結(jié)果
# 肯定會出錯
# cmp函數(shù)釋義:
# cmp(x,y) 函數(shù)用于比較2個對象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
# 用于排序中,默認從小到大
sorted_ignore_case = functools.partial(sorted, cmp = lambda s1, s2: cmp(s1.upper(), s2.upper()))
print(sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit']))
# 不使用偏函數(shù)的時候
'''
def cmp_ignore_case(s1, s2):
  u1 = s1.upper()
  u2 = s2.upper()
  if u1 > u2:
    return 1
  if u1 < u2:
    return -1
  return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
'''

運行結(jié)果:

['about', 'bob', 'Credit', 'Zoo']

關(guān)于偏函數(shù)怎么在Python中使用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

網(wǎng)站標題:偏函數(shù)怎么在Python中使用-創(chuàng)新互聯(lián)
URL鏈接:http://www.rwnh.cn/article42/iciec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT品牌網(wǎng)站制作、自適應(yīng)網(wǎng)站、網(wǎng)站收錄、定制開發(fā)、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
石楼县| 新竹市| 郴州市| 宁波市| 博客| 贡山| 嘉义市| 富顺县| 泉州市| 聊城市| 当阳市| 齐河县| 双鸭山市| 育儿| 井冈山市| 洛宁县| 淳安县| 涟源市| 崇礼县| 宕昌县| 读书| 泰安市| 明星| 德兴市| 壤塘县| 枝江市| 包头市| 伊金霍洛旗| 临沂市| 临夏市| 清镇市| 锡林浩特市| 太和县| 定襄县| 湛江市| 宁安市| 阳江市| 淳安县| 石阡县| 留坝县| 崇文区|