最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

python中偏函數(shù)

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

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

>>> int('12345')
12345

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

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

假設(shè)要轉(zhuǎn)換大量的二進制字符串,每次都傳入int(x, base=2)非常麻煩,于是,我們想到,可以定義一個int2()的函數(shù),默認(rèn)把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)建時指定默認(rèn)值,這樣,新函數(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的默認(rèn)值。

參考代碼:

#!/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
# 用于排序中,默認(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ù)的時候
'''
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)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計入門與進階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進階經(jīng)典教程

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

相關(guān)文章

  • 在Windows中安裝Spire.XLS?for?Python的操作指南

    在Windows中安裝Spire.XLS?for?Python的操作指南

    Spire.XLS?for?Python?是一款專業(yè)的?Python?Excel?庫,可用于在各種?Python?應(yīng)用程序中讀取、創(chuàng)建、編輯和轉(zhuǎn)換?Excel?(.xls?&?.xlsx)?文件,本文將介紹如何在?Windows?中安裝?Spire.XLS?for?Python,需要的朋友可以參考下
    2025-02-02
  • python?列表的查詢操作和切片

    python?列表的查詢操作和切片

    這篇文章主要介紹了python?列表的查詢操作和切片,列表是python內(nèi)置的數(shù)據(jù)結(jié)構(gòu),相當(dāng)于數(shù)組,列表中所有數(shù)據(jù)都是按順序有序排列,列表屬于序列類型,接下來一起學(xué)習(xí)下面的文章內(nèi)容吧
    2022-01-01
  • python學(xué)習(xí)教程之使用py2exe打包

    python學(xué)習(xí)教程之使用py2exe打包

    py2exe是一個將python腳本轉(zhuǎn)換成windows上的可獨立執(zhí)行的可執(zhí)行程序(*.exe)的工具,下面這篇文章主要給大家介紹了關(guān)于python學(xué)習(xí)教程之使用py2exe打包的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • python GUI庫圖形界面開發(fā)之PyQt5中QWebEngineView內(nèi)嵌網(wǎng)頁與Python的數(shù)據(jù)交互傳參詳細(xì)方法實例

    python GUI庫圖形界面開發(fā)之PyQt5中QWebEngineView內(nèi)嵌網(wǎng)頁與Python的數(shù)據(jù)交互傳參詳細(xì)方法

    這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt中QWebEngineView內(nèi)嵌網(wǎng)頁與Python的數(shù)據(jù)交互詳細(xì)方法實例,需要的朋友可以參考下
    2020-02-02
  • python實現(xiàn)動態(tài)創(chuàng)建類的方法分析

    python實現(xiàn)動態(tài)創(chuàng)建類的方法分析

    這篇文章主要介紹了python實現(xiàn)動態(tài)創(chuàng)建類的方法,結(jié)合實例形式分析了Python動態(tài)創(chuàng)建類的原理、實現(xiàn)方法及相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • 一文搞懂Pandas數(shù)據(jù)透視的4個函數(shù)的使用

    一文搞懂Pandas數(shù)據(jù)透視的4個函數(shù)的使用

    今天主要和大家分享Pandas中四種有關(guān)數(shù)據(jù)透視的通用函數(shù),在數(shù)據(jù)處理中遇到這類需求時,能夠很好地應(yīng)對,快跟隨小編一起學(xué)習(xí)一下吧
    2022-06-06
  • Python Paramiko模塊的使用實際案例

    Python Paramiko模塊的使用實際案例

    這篇文章主要介紹了Python Paramiko模塊的使用實際案例,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • python使用itchat實現(xiàn)手機控制電腦

    python使用itchat實現(xiàn)手機控制電腦

    這篇文章主要為大家詳細(xì)介紹了python使用itchat實現(xiàn)手機控制電腦,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python 冷門魔術(shù)方法小結(jié)

    Python 冷門魔術(shù)方法小結(jié)

    本文主要介紹了Python 冷門魔術(shù)方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • Python字符串查找和統(tǒng)計方法詳解

    Python字符串查找和統(tǒng)計方法詳解

    本教程將詳細(xì)介紹Python中三種常用的字符串查找和統(tǒng)計方法:count()統(tǒng)計字符串出現(xiàn)次數(shù)、find()和index()檢測子串位置,無論你是Python初學(xué)者還是想要鞏固基礎(chǔ)知識的程序員,這篇教程都能幫助你全面理解這些操作,需要的朋友可以參考下
    2025-04-04

最新評論

西和县| 满洲里市| 长治市| 宜都市| 黄平县| 修水县| 神农架林区| 马尔康县| 施甸县| 应城市| 炎陵县| 德兴市| 黎川县| 镶黄旗| 永川市| 钟山县| 新昌县| 嘉义市| 丹阳市| 遵义市| 综艺| 泸州市| 南京市| 瓮安县| 太湖县| 巫溪县| 油尖旺区| 巫山县| 黄平县| 三原县| 德清县| 漳州市| 桓台县| 德钦县| 视频| 大城县| 大港区| 喀喇| 星子县| 达拉特旗| 景谷|