欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中偏函數(shù)用法示例

 更新時(shí)間:2018年06月07日 10:05:44   作者:有一種宿命叫無(wú)能為力  
這篇文章主要介紹了Python中偏函數(shù)用法,結(jié)合實(shí)例形式分析了Python基于functools模塊創(chuàng)建和使用偏函數(shù)的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Python中偏函數(shù)用法。分享給大家供大家參考,具體如下:

python中偏函數(shù)

當(dāng)一個(gè)函數(shù)有很多參數(shù)時(shí),調(diào)用者就需要提供多個(gè)參數(shù)。如果減少參數(shù)個(gè)數(shù),就可以簡(jiǎn)化調(diào)用者的負(fù)擔(dān)。

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

>>> int('12345')
12345

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

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

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

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

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

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

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

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

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

任務(wù)

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

sorted_ignore_case(iterable)

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

參考代碼:

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

運(yùn)行結(jié)果:

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

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python中random模塊常用方法的使用教程

    Python中random模塊常用方法的使用教程

    這篇文章主要給大家介紹了關(guān)于Python中random模塊常用方法的使用教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python多進(jìn)程程序打包成exe的問(wèn)題

    python多進(jìn)程程序打包成exe的問(wèn)題

    這篇文章主要介紹了python多進(jìn)程程序打包成exe的問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • python通過(guò)pil模塊獲得圖片exif信息的方法

    python通過(guò)pil模塊獲得圖片exif信息的方法

    這篇文章主要介紹了python通過(guò)pil模塊獲得圖片exif信息的方法,實(shí)例分析了Python中pil模塊的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • python編程簡(jiǎn)單幾行代碼實(shí)現(xiàn)視頻轉(zhuǎn)換Gif示例

    python編程簡(jiǎn)單幾行代碼實(shí)現(xiàn)視頻轉(zhuǎn)換Gif示例

    這篇文章主要為大家介紹了簡(jiǎn)單使用幾行python代碼就可以實(shí)現(xiàn)將視頻轉(zhuǎn)換Gif的示例過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • PyTorch常用函數(shù)torch.cat()中dim參數(shù)使用說(shuō)明

    PyTorch常用函數(shù)torch.cat()中dim參數(shù)使用說(shuō)明

    這篇文章主要為大家介紹了PyTorch常用函數(shù)torch.cat()中dim參數(shù)使用說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 五分鐘帶你搞懂python 迭代器與生成器

    五分鐘帶你搞懂python 迭代器與生成器

    這篇文章主要介紹了python 迭代器與生成器的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • python判斷列表的連續(xù)數(shù)字范圍并分塊的方法

    python判斷列表的連續(xù)數(shù)字范圍并分塊的方法

    今天小編就為大家分享一篇python判斷列表的連續(xù)數(shù)字范圍并分塊的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Pandas 處理DataFrame中的inf值實(shí)現(xiàn)

    Pandas 處理DataFrame中的inf值實(shí)現(xiàn)

    Inf 表示正無(wú)窮大或負(fù)無(wú)窮大,通常是在數(shù)學(xué)計(jì)算中產(chǎn)生的結(jié)果,本文主要介紹了Pandas 處理DataFrame中的inf值實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • Python中請(qǐng)使用isinstance()判斷變量類型

    Python中請(qǐng)使用isinstance()判斷變量類型

    這篇文章主要介紹了Python中請(qǐng)使用isinstance()判斷變量類型,本文先是給出了isinstance函數(shù)判斷變量類型的例子,并對(duì)isinstance 和 type的區(qū)別做了講解,需要的朋友可以參考下
    2014-08-08
  • django框架使用方法詳解

    django框架使用方法詳解

    這篇文章主要介紹了django框架使用方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評(píng)論