返回列表 发帖

匿名函数

匿名函数就是不再使用def语句的标准形式来定义一个函数。
lambda的主体是一个表达式,仅能在表达式中封装有限的逻辑。



######

例子一:

#coding=utf-8

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

print('列表中大于3的元素有:',[item for item in filter(lambda x:x>3,list_1)])
print('列表中大于3的元素有',len([item for item in filter(lambda x:x>3,list_1)]),'个')

print("-" * 10)
list_1.sort(reverse=True)#降序
print(list_1)
print(f'列表中的最小值为{list_1[4]}')

print("-" * 10)
list_1.sort(reverse=False)#升序
print(list_1)
print(f'列表中的最大值为{list_1[4]}')


脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
列表中大于3的元素有: [4, 5]
列表中大于3的元素有 2 个
----------
[5, 4, 3, 2, 1]
列表中的最小值为1
----------
[1, 2, 3, 4, 5]
列表中的最大值为5



######

例子二:

#coding=utf-8

list_1=['小明','大海','zhuohua','Python']

print("列表中包含关键字'h'的元素:")
print([item for item in filter(lambda x:'h' in x,list_1)])

print("-" * 10)
print("列表中包含关键字'海'的元素:")
print([item for item in filter(lambda x:'海' in x,list_1)])

print("-" * 10)
print("列表中不包含关键字'明'的元素:")
print([item for item in filter(lambda x:'明' not in x,list_1)])


脚本运行的结果:(区分英文字母大小写)
C:\Users\jacky\Desktop>python xx.py
列表中包含关键字'h'的元素:
['zhuohua', 'Python']
----------
列表中包含关键字'海'的元素:
['大海']
----------
列表中不包含关键字'明'的元素:
['大海', 'zhuohua', 'Python']



######

例子三:

#coding=utf-8

list_1=['小明','大海','zhuohua','Python海']

print("列表中以关键字'zh'开头的元素:")
print([item for item in filter(lambda x:x.startswith('zh'),list_1)])

print("-" * 10)
print("列表中以关键字'海'结尾的元素:")
print([item for item in filter(lambda x:x.endswith('海'),list_1)])


脚本运行的结果:(区分英文字母大小写)
C:\Users\jacky\Desktop>python xx.py
列表中以关键字'zh'开头的元素:
['zhuohua']
----------
列表中以关键字'海'结尾的元素:
['大海', 'Python海']





######使用匿名函数进行科学计算(一)

#coding=utf-8

func1 = lambda x,y,z:x*y-z #公式

Result_1 = func1(8,9,3.268) #分别给变量x、y、z进行赋值,并把结果返回给变量Result_1

print(Result_1)
print(type(Result_1))

Result_2 = "%.2f" % Result_1 #结果保留两位小数
print(Result_2)
print(type(Result_2))


脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
68.732
<class 'float'>
68.73
<class 'str'>



######使用匿名函数进行科学计算(二)

#coding=utf-8

func1 = lambda x,y,z:x * (y - z)

x = 8
y = 9
z = 3.268
Result_1 = func1(x,y,z)

print(Result_1)
print(type(Result_1))

Result_2 = "%.2f" % Result_1 #结果保留两位小数
print(Result_2)
print(type(Result_2))

Result_3 = float(Result_2) #转换为浮点数
print(Result_3)
print(type(Result_3))


脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
45.856
<class 'float'>
45.86
<class 'str'>
45.86
<class 'float'>



######使用匿名函数进行科学计算(三)

#coding=utf-8
import math

func1 = lambda x:math.sin(x) #sin()返回的是x弧度的正弦值

x = 8
Result_1 = func1(x)

print(Result_1)
print(type(Result_1))

Result_2 = "%.3f" % Result_1 #结果保留三位小数
print(Result_2)
print(type(Result_2))

print("-" * 10)
print("-" * 10)
print("圆周率:")
a = math.pi #圆周率
print(a)


脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
0.9893582466233818
<class 'float'>
0.989
<class 'str'>
----------
----------
圆周率:
3.141592653589793



######使用匿名函数进行科学计算(四)

#coding=utf-8
import math

func1 = lambda x:math.cos(x) #cos()返回的是x弧度的余弦值

x = 8
Result_1 = func1(x)

print(Result_1)
print(type(Result_1))

Result_2 = "%.4f" % Result_1 #结果保留四位小数
print(Result_2)
print(type(Result_2))


脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
-0.14550003380861354
<class 'float'>
-0.1455
<class 'str'>



######使用匿名函数进行科学计算(五)

#coding=utf-8
import math

func1 = lambda x:math.tan(x) #tan()返回的是x弧度的正切值

x = 8
Result_1 = func1(x)

print(Result_1)
print(type(Result_1))

Result_2 = "%.5f" % Result_1 #结果保留五位小数
print(Result_2)
print(type(Result_2))

Result_3 = int(float(Result_2)) #先转换为浮点数,再转换为整数(直接截取整数部分,不是四舍五入)
print(Result_3)
print(type(Result_3))


脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
-6.799711455220379
<class 'float'>
-6.79971
<class 'str'>
-6
<class 'int'>





相关文章:
自定义函数
自定义类
Python3命令集

if语句
for循环语句

返回列表