日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python在匿名函数作和_跟光磊学Python开发-匿名函数函数和高阶函数

發(fā)布時間:2025/3/19 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python在匿名函数作和_跟光磊学Python开发-匿名函数函数和高阶函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

跟光磊學(xué)Python開發(fā)-匿名函數(shù)函數(shù)和高階函數(shù)

跟光磊學(xué)Python開發(fā)-匿名函數(shù)函數(shù)和高階函數(shù)跟光磊學(xué)Python開發(fā)

匿名函數(shù)

匿名函數(shù)就是函數(shù)定義時沒有名字的函數(shù),也稱為匿名表達(dá)式。

普通函數(shù)的定義方式如下

def 函數(shù)名(參數(shù)列表):

函數(shù)體

匿名函數(shù)的定義方式如下

lambda [形參1][形參2]:[單行表達(dá)式]或[函數(shù)調(diào)用]

lambda定義和普通函數(shù)的區(qū)別

lambda沒有函數(shù)名

lambda參數(shù)列表沒有括號

lambda函數(shù)體中只能實現(xiàn)簡單的表達(dá)式或則函數(shù)調(diào)用

lambda函數(shù)不能使用return,if,while,for-in

lambda函數(shù)體可以使用if實現(xiàn)的三目運算符

一般情況下因為lambda的局限性,使得它不能實現(xiàn)復(fù)雜的功能,只能實現(xiàn)一些簡單功能。在使用時一般會實現(xiàn)一些簡單的一次性使用的場景。

在Python的世界里一切皆對象,函數(shù)、文件等等都是對象,每個對象都有對應(yīng)的內(nèi)存地址(即引用),通過引用找到該對象并使用它。

函數(shù)作為參數(shù)賦值給變量,通過賦值的變量調(diào)用函數(shù)

"""

函數(shù)名作為參數(shù)

函數(shù)名也是可以參與賦值

@author tony 18601767221@163.com

@version 2021-02-06 09:43:44

@since python3.9.1

"""

# 普通函數(shù)的定義和調(diào)用

def display():

print("Hello Python")

def show_info():

print("跟光磊學(xué)Python開發(fā)")

display()

# 將一個函數(shù)的引用display賦值給一個變量func

func = display

# 打印函數(shù)的引用地址

# func = function display at 0x7fbff00e7040

print("func = ", func)

# 通過func變量 調(diào)用func()函數(shù)

func()

def call_func(func):

"""

函數(shù)地址作為參數(shù)實現(xiàn)在一個函數(shù)調(diào)用另外一個函數(shù)的函數(shù)

:param func:

:return:

"""

func()

call_func(func)

call_func(show_info)

程序運行結(jié)果

匿名函數(shù)的定義、使用和注意事項

"""

匿名函數(shù)的定義、使用和注意事項

@author tony 18601767221@163.com

@version 2021-02-06 09:43:44

@since python3.9.1

"""

# 定義一個匿名函數(shù) 返回1+1的結(jié)果給函數(shù)變量func

func = lambda: 1 + 1

print(func)

print("1加1的結(jié)果是", func())

# 定義一個帶參數(shù)的匿名函數(shù),返回參數(shù)的10次方

func = lambda x: x ** 10

print("2的10次方是", func(2))

# 匿名函數(shù)的注意事項

# lambda默認(rèn)返回計算結(jié)果,不需要return返回,如果加了return反而會報錯 無效的語法

# func = lambda x, y: return x + y

func = lambda x, y: x + y

print("兩個整數(shù)的和是", func(10, 20))

# 匿名函數(shù)不能使用循環(huán) 無效的語法

# func =lambda x,y:for i in range(x,y):print(i)

# func=lambda x:while x100:print(x)

# 匿名函數(shù)不能使用if的三種格式

# func= lambda x:if x10:print("參數(shù)小于10")

# 匿名函數(shù)使用if實現(xiàn)的三目運算符

func = lambda left, right: left if left right else right

print("兩個整數(shù)的最大值是", func(10, 20))

高階函數(shù)-map

map會根據(jù)將提供的函數(shù)對指定的序列做映射,第一個參數(shù)function以參數(shù)序列中的每個元素調(diào)用function函數(shù),返回包含每次function函數(shù)返回值的新列表

def square(x):

"""

求平方,該函數(shù)作為map()函數(shù)的第一個參數(shù)

因為map函數(shù)需要這個函數(shù)計算每個元素的值

所以該函數(shù)有且必須只能有一個參數(shù)

:param x:

:return:

"""

return x ** 2

# 普通函數(shù)作為map函數(shù)的參數(shù)參數(shù)

# square作為引用賦值給map()函數(shù)的形參

# result = map(square, int_list)

# lambda匿名函數(shù)作為map函數(shù)的參數(shù)

result = map(lambda x: x ** 2, int_list)

print("map函數(shù)的返回值類型", type(result))

for i in result:

print(i)

程序運行結(jié)果

自定義實現(xiàn)map函數(shù)

def custom_map(func, origin_list):

"""

自定義實現(xiàn)map函數(shù)

:param func: 函數(shù)

:param origin_list: 列表

:return: 列表

"""

# 定義一個列表作為返回參數(shù)

new_list = []

# 遍歷參數(shù)列表

for i in origin_list:

# 將列表的元素傳遞給函數(shù)執(zhí)行后將返回結(jié)果添加到新列表中

new_list.append(func(i))

# 返回新列表

return new_list

使用自定義實現(xiàn)map函數(shù)

result = custom_map(lambda x: x ** 2, int_list)

print("custom_map函數(shù)的返回值類型", type(result))

for i in result:

print(i)

程序運行結(jié)果

高階函數(shù)-reduce

reduce()函數(shù)會對參數(shù)序列中的元素進(jìn)行累計操作,例如累加求和,求階乘,統(tǒng)計數(shù)量,字符串連接等。

reduce()函數(shù)在functools模塊中,在使用前需要使用import functools導(dǎo)入該模塊。

使用reduce()分別結(jié)合普通函數(shù)和匿名函數(shù)實現(xiàn)累加求和

"""

reduce()函數(shù)的使用

@author tony 18601767221@163.com

@version 2021-02-06 10:55:17

@since python3.9.1

"""

import functools

int_list = [1, 2, 3, 4, 5]

def custom_sum(left, right):

"""

返回兩個參數(shù)的和

:param left:

:param right:

:return:

"""

return left + right

result = functools.reduce(custom_sum, int_list)

print("使用普通函數(shù) result的類型是", type(result))

print("使用普通函數(shù) 累加求和的結(jié)果是 ", result)

result = functools.reduce((lambda value, element: value + element), int_list)

print("使用lambda匿名函數(shù) result的類型是", type(result))

print("使用lambda匿名函數(shù) 累加求和的結(jié)果是 ", result)

程序運行結(jié)果

使用reduce()函數(shù)結(jié)合匿名函數(shù)實現(xiàn)字符串拼接

"""

使用reduce()實現(xiàn)字符串拼接,并轉(zhuǎn)換為大寫

@author tony 18601767221@163.com

@version 2021-02-06 11:22:40

@since python3.9.1

"""

import functools

str_list = ["h", "e", "l", "l", "o"]

result = functools.reduce(lambda s1, s2: str(s1 + s2).upper(), str_list)

print("result的類型是",type(result))

print("字符串拼接的結(jié)果是",result)

程序運行結(jié)果

使用reduce()函數(shù)結(jié)合匿名函數(shù)實現(xiàn)階乘運算

"""

使用reduce求階乘

@author tony 18601767221@163.com

@version 2021-02-06 11:27:39

@since python3.9.1

"""

import functools

int_list = [1, 2, 3, 4, 5]

result = functools.reduce(lambda n1, n2: n1 * n2, int_list)

print("階乘的結(jié)果是", result)

程序運行結(jié)果

高階函數(shù)-filter

filter函數(shù)用于過濾序列,過濾掉不符合條件的元素,返回一個filter對象,如果要轉(zhuǎn)換成列表,可以使用list()方法轉(zhuǎn)換。

該函數(shù)需要兩個參數(shù),一個為函數(shù),第二個為序列,序列的每個元素作為參數(shù)傳遞給函數(shù)進(jìn)行判斷,然后返回True或者False,最后將返回True的元素放到新列表中。

"""

filter()函數(shù)的使用

@author tony 18601767221@163.com

@version 2021-02-06 11:35:47

@since python3.9.1

"""

int_list = [i for i in range(1, 10)]

# 使用filer函數(shù)結(jié)合匿名函數(shù)實現(xiàn)奇數(shù)過濾

result = list(filter(lambda x: x % 2 == 0, int_list))

print("int_list過濾奇數(shù)后的結(jié)果是",result)

程序運行結(jié)果

使用filer()過濾列表中的數(shù)字字符串

"""

使用filer()過濾列表中的數(shù)字字符串

@author tony 18601767221@163.com

@version 2021-02-06 11:44:38

@since python3.9.1

"""

str_list = ["123", "456", "python", "go", "java"]

result = filter(lambda s: s.isdigit(), str_list)

print("str_list過濾列表匯總的數(shù)字字符串的結(jié)果是",list(result))

程序運行結(jié)果

列表排序

列表的sort()方法只支持基本類型的排序,例如整數(shù)的排序,默認(rèn)順序升序

"""

sort()函數(shù)與lambda

@author tony 18601767221@163.com

@version 2021-02-06 11:48:41

@since python3.9.1

"""

int_list = [1, 2, 4, 5, 7, 8, 9, 6, 3]

# 簡單排序

print("排序之前int_list = ", int_list)

int_list.sort()

print("排序之后int_list = ", int_list)

程序運行結(jié)果

如果想要完成復(fù)雜類型的數(shù)據(jù)排序,例如字典類型的數(shù)據(jù)排序,可以通過參數(shù)key結(jié)合lamda函數(shù)來指定排序規(guī)則進(jìn)行排序

product_list = [{"id": 1, "name": "iphone12 pro max", "price": 12999.99},

{"id": 3, "name": "華為mate40pro max", "price": 8999.99},

{"id": 2, "name": "小米11 pro", "price": 6999.99}]

print("排序之前product_list= ", product_list)

# sort()方法不能對字典進(jìn)行排序

# TypeError: '' not supported between instances of 'dict' and 'dict'

# product_list.sort()

print("初始化產(chǎn)品列表 product_list= ", product_list)

# 需求 按照ID的升序排序

product_list.sort(key=lambda d: d["id"])

print("按照ID的升序排序之后product_list= ", product_list)

product_list.sort(key=lambda d: d["price"], reverse=True)

print("按照價格降序排序之后product_list= ", product_list)

程序運行結(jié)果

跟光磊學(xué)Python開發(fā)-匿名函數(shù)函數(shù)和高階函數(shù) 相關(guān)文章

python將兩個txt按列合并

要點: 使用 with 打開文件。不需要關(guān)閉文件。 使用 zip 函數(shù)組合兩個列表。 不帶zip的代碼,帶內(nèi)聯(lián)注釋: combine =[]with open("x.txt") as xh: with open('y.txt') as yh: with open("z.txt","w") as zh: #Read first file xlines = xh.readlines() #Read

Python Basics with numpy (optional)

Python Basics with Numpy (optional assignment) Welcome to your first assignment. This exercise gives you a brief introduction to Python. Even if you've used Python before, this will help familiarize you with functions we'll need. Instructi

python用pd.read_csv()方法來讀取csv文件

import pandas as pd print("************取消第一行作為表頭*************")data2 = pd.read_csv('rating.csv',header=None)print("************為各個字段取名**************")data3 = pd.read_csv('rating.csv',names=['user_id','book_id','rating'])pri

python3存圖片到數(shù)據(jù)庫中并查詢(附送一張張查看圖片)

import sys import pymysql from PIL import Image import os, time path = "./" # 打開圖片存放到內(nèi)存中 fp = open("./2.png", 'rb') img = fp.read() fp.close() database = pymysql.connect(host="172.16.22.132", port=63306, user="root", passwd="sa",

pycharm vs vscode項目調(diào)試對比

python的兩大IDE開發(fā)利器,pycharm 和 vscode,二者各有優(yōu)劣吧。 pycharm vs vscode簡單對比 pycharm優(yōu)點: python開發(fā)利器,專為python設(shè)計 內(nèi)置功能豐富,比如可以在IDE中直接查看sql數(shù)據(jù)庫,前提是有插件:DB BROWER 查看類、函數(shù)定義方便,只需簡單通過

Python之文件及文件系統(tǒng)

Python之文件及文件系統(tǒng) open() 方法: Python open() 方法用于打開一個文件,并返回文件對象,在對文件進(jìn)行處理過程都需要使用到這個函數(shù),如果該文件無法被打開,會拋出 OSError。 注意: 使用 open() 方法一定要保證關(guān)閉文件對象,即調(diào)用 close() 方法。

python pandas 交叉表, 透視表

透視表 pivot table 透視表(pivot table)是常見的數(shù)據(jù)匯總工具,它根據(jù)一個或多個鍵對數(shù)據(jù)進(jìn)行聚合,根據(jù)行和列上的分組鍵將數(shù)據(jù)分配到矩形區(qū)域中。 pandas中使用pivot_table方法創(chuàng)建透視表, pd.pivot_table(data,values=None,index=None,columns=None,ag

css 選擇器

在玩 python爬蟲 時, 我們經(jīng)常要定位標(biāo)簽, 獲取屬性 在這個過程中, 靠 css選擇器 是一個十分有利的方法, 不僅簡潔而且邊界 就個人看來, 在正則 , xpath , 和 css選擇器 中, 如果 css選擇器 能用, 我肯定會選 css選擇器 我們先來看這個 html: !DOCTYPE htmlht

Python-django-from表單組件

from django.forms import Formfrom django.forms import fieldsfrom django.forms import widgetsfrom django.forms.models import ModelChoiceFieldfrom django.core.validators import RegexValidatorfrom django.core.validators import ValidationError

Security and Cryptography in Python - Frequency Analysis

Security and Cryptography in Python - Frequency Analysis Frequency Analysis cipher = """lrvmnir bpr sumvbwvr jx bpr lmiwv yjeryrkbi jx qmbm wibpr xjvni mkd ymibrut jx irhx wi bpr riirkvr jxymbinlmtmipw utn qmumbr dj w ipmhh but bj rhnvwdmb

總結(jié)

以上是生活随笔為你收集整理的python在匿名函数作和_跟光磊学Python开发-匿名函数函数和高阶函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲AV午夜精品 | 九热在线 | 国产网站黄 | 最新av不卡 | 亚洲色图激情小说 | 最新av片 | 日产精品一区 | 久久综合久色欧美综合狠狠 | 法国空姐电影在线观看 | 五月婷婷一区二区 | 进去里视频在线观看 | 中文字幕一区二区三区人妻电影 | av夜夜| 伊人亚洲天堂 | 黄色的网站免费看 | 国精产品一区 | 香蕉av网 | 极品美女开粉嫩精品 | 澳门av网站| 久久精品国产99久久久 | 男人日女人逼 | 久久精品丝袜 | 国产专区一区二区三区 | 黄频在线免费观看 | 成人亚洲欧美 | 不卡中文字幕在线观看 | 免费看黄色片网站 | 国内精品视频一区 | 日韩欧美国产一区二区三区 | 欧美性受xxxx | 中文字幕亚洲乱码熟女一区二区 | 女性裸体下面张开 | 电影桑叶2在线播放完整版 222aaa | a级无遮挡超级高清-在线观看 | 久久久啊啊啊 | 在线观看欧美成人 | 在线观看无遮挡 | 国产成人自拍视频在线 | 欧美性xxxx | 亚洲国产一区二区在线 | 亚洲www在线观看 | 亚洲s码欧洲m码国产av | aa丁香综合激情 | 午夜电影你懂的 | 竹菊影视日韩一区二区 | 一本大道久久a久久综合婷婷 | 日韩三级麻豆 | 亚洲无码乱码精品国产 | 国产www性| 国产一区二区三区四区五区在线 | 黄色免费视屏 | 中文字幕一区日韩 | 久久久久久久网 | 国产日韩一级片 | 韩日视频在线 | 九久久| 992tv在线成人免费观看 | 农村少妇久久久久久久 | 日韩欧美高清视频 | a少妇| 天堂成人国产精品一区 | 亚洲一区二区精品在线 | 无码人妻av一区二区三区波多野 | 女人高潮潮呻吟喷水 | 日本乱偷人妻中文字幕在线 | 亚洲乱色熟女一区二区 | 欧美在线黄 | 人人爽人人插 | 一本之道av | 超碰人人人人人人人 | 日韩欧美一区二区在线 | 色综合天天射 | 一区二区日韩国产 | 最近日本中文字幕 | 亚洲电影一区二区三区 | 国产污视频在线 | 欧洲女性下面有没有毛发 | 国产乡下妇女做爰视频 | 欧美视频一二区 | 91精品人妻一区二区 | 熟女俱乐部一区二区 | 亚洲xx视频| 亚洲六月丁香色婷婷综合久久 | 国产一区视频网站 | aaa大片十八岁禁止 中文字幕亚洲在线观看 | 牛夜精品久久久久久久99黑人 | 无码免费一区二区三区 | 波多野结衣视频网址 | 性感美女被爆操 | 欧美日韩国产精品一区 | 天天爽天天爽天天爽 | 久久午夜精品视频 | 精品美女www爽爽爽视频 | 国产盗摄一区二区三区 | 朝桐光在线视频 | 在线se| 欧美少妇15p | 91亚洲精品久久久蜜桃 | 最新国产网站 |