非常抱歉,昨天發的代碼中有一處小錯誤,已通過留言的方式進行了糾正,詳情請見詳解Python列表推導式
lambda表達式常用來聲明匿名函數,即沒有函數名字的臨時使用的小函數。lambda表達式只可以包含一個表達式,不允許包含其他復雜的語句,但在表達式中可以調用其他函數,并支持默認值參數和關鍵參數,該表達式的計算結果相當于函數的返回值。下面的代碼演示了不同情況下lambda表達式的應用。
>>> f = lambda x, y, z: x+y+z
#把lambda表達式當做函數使用
python字符串切片用法,>>> print(f(1, 2, 3))
6
#使用lambda表達式定義帶有默認值參數的函數
>>> g = lambda x, y=2, z=3: x+y+z
>>> print(g(1))
python菜鳥教程,6
#調用時使用關鍵參數
>>> print(g(2, z=4, y=5))
11
>>> L=[(lambda x: x**2), (lambda x: x**3), (lambda x: x**4)]
lambda匿名函數,>>> print(L[0](2), L[1](2), L[2](2))
4 8 16
#lambda表達式可以作為字典的“值”
>>> D={'f1':(lambda: 2+3), 'f2':(lambda: 2*3), 'f3':(lambda: 2**3)}
>>> print(D['f1'](), D['f2'](), D['f3']())
python最優化算法?5 6 8
>>> L=[1, 2, 3, 4, 5]
#沒有名字的lambda表達式,作為函數參數
>>> print(map((lambda x: x+10), L))
[11, 12, 13, 14, 15]
python中lambda用法?>>> L
[1, 2, 3, 4, 5]
>>> def demo(n):
return n*n
>>> demo(5)
python中的lambda函數?25
>>> a_list = [1, 2, 3, 4, 5]
#在lambda表達式中可以調用其他函數
>>> map(lambda x: demo(x), a_list)
[1, 4, 9, 16, 25]
python groupby用法?#生成20個數,0-19
>>> data = list(range(20))
>>> print(data)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> import random
python里面的lambda,#隨機打亂順序
>>> random.shuffle(data)
>>> data
[4, 3, 11, 13, 12, 15, 9, 2, 10, 6, 19, 18, 14, 8, 0, 7, 5, 17, 1, 16]
#使用lambda表達式指定排序規則
python語言,>>> data.sort(key=lambda x: len(str(x)))
>>> data
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
#使用lambda表達式指定排序規則
>>> data.sort(key=lambda x: len(str(x)), reverse=True)
>>> data
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> from random import randrange
#使用列表推導式生成7行5列二維隨機數據
#每個數字在[1,10)范圍內
>>> lst = [[randrange(1, 10) for i in range(5)] for j in range(7)]
>>> for item in lst:
print(item)
[9, 9, 5, 6, 7]
[7, 3, 5, 5, 6]
[3, 5, 3, 5, 3]
[4, 7, 6, 9, 8]
[6, 4, 1, 4, 1]
[9, 7, 8, 9, 4]
[9, 1, 8, 6, 9]
#首先按第3列從小到大排序
#第3列一樣的按第5列從小到大排序
>>> lst.sort(key=lambda item: (item[2], item[4]))
>>> for item in lst:
print(item)
[6, 4, 1, 4, 1]
[3, 5, 3, 5, 3]
[7, 3, 5, 5, 6]
[9, 9, 5, 6, 7]
[4, 7, 6, 9, 8]
[9, 7, 8, 9, 4]
[9, 1, 8, 6, 9]
本文內容節選自《Python程序設計》(第2版),董付國編著,清華大學出版社,2016年6月出版,2016年11月第二次印刷。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态