匿名函数,又称为Lambda函数,是一种没有名字的函数。它们在编程中非常有用,特别是用于创建简洁的代码和实现函数式编程的概念。
下面是一个Python中使用匿名函数的例子:
python# 这是一个匿名函数,它接受两个参数,并返回它们的和
add = lambda x, y: x + y
# 使用此函数
result = add(3, 5)
print(result) # 输出 8
在这个例子中,lambda x, y: x + y
是一个匿名函数,它接受两个参数,x
和 y
,并返回它们的和。这种函数在需要短小函数的地方非常有用,例如在排序或过滤列表时。
请注意,尽管匿名函数非常有用,但它们也可能使代码更难阅读和理解。因此,在写更复杂的函数或算法时,使用标准函数定义可能更为合适。
语法: 函数名 = lambda
参数: 返回值 注意: 1. 函数的参数可以有多个. 多个参数之间⽤逗号隔开 2. 匿名函数不管多复杂. 只能写⼀⾏, 且逻辑结束后直接返回数据 3. 返回值和正常的函数⼀样, 可以是任意数据类型 匿名函数并不是说⼀定没有名字. 这⾥前⾯的变量就是⼀个函数名. 说他是匿名原因是我们通 过__name__查看的时候是没有名字的. 统⼀都叫lambda. 在调⽤的时候没有什么特别之处. 像正常的函数调⽤即可
求 几个数的大小
res = lambda *args: max(args)
print(res(1, 3, 5, 55, 6, 6, 56, 6, 6, 6, 6))
语法: sorted(Iterable, key=None, reverse=False)
Iterable: 可迭代对象 key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每⼀个元素传递给这个函 数的参数. 根据函数运算的结果进⾏排序 reverse: 是否是倒叙. True: 倒叙, False: 正叙
和函数组合使⽤
lst = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"]
# 计算字符串⻓度
def func(s):
return len(s)
print(sorted(lst, key=func)) #['狐仙', '麻花藤', '冈本次郎', '中央情报局']
和lambda组合使⽤
lst = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"]
res=sorted(lst, key=lambda s:len(s))
print(res) #['狐仙', '麻花藤', '冈本次郎', '中央情报局']
lambda和字典使用
lst = [{"id": 1, "name": 'alex', "age": 18},
{"id": 2, "name": 'wusir', "age": 16},
{"id": 3, "name": 'taibai', "age": 17}]
# 按照年龄对学⽣信息进⾏排序
print(sorted(lst, key=lambda e: e['age']))
#[{'id': 2, 'name': 'wusir', 'age': 16},
# {'id': 3, 'name': 'taibai', 'age': 17},
# {'id': 1, 'name': 'alex', 'age': 18}]
filter()
筛选函数在Python中,filter()
是一个内置函数,用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
filter()
函数的语法是:
pythonfilter(function, iterable)
参数解释:
function
: 用于测试每个元素是否符合条件的函数。这个函数应该返回一个布尔值:True
或False
。对于序列中的每个元素,function
都会被调用一次。iterable
: 可迭代对象,如列表、元组、集合等。下面是一个简单的示例,使用filter()
函数过滤出小于10的元素:
pythonnumbers = [5, 12, 8, 100, 35, 7]
# 定义一个函数,判断一个数是否小于10
def is_less_than_10(num):
return num < 10
# 使用 filter 函数过滤出小于10的元素
result = filter(is_less_than_10, numbers)
# 输出结果
print(list(result)) # 输出:[5, 8]
在这个例子中,is_less_than_10()
函数用于检查每个数字是否小于10。filter()
函数接受这个函数和一个可迭代的数字列表作为输入,然后返回一个对象,该对象生成器包含所有满足条件的元素(即小于10的元素)。最后,我们使用list()
函数将生成器对象转换为列表并打印出来。
#数字大于10
lis = [1, 23, 6, 5, 6, 89, 23, 3]
ls=filter(lambda a:a>10,lis)
print(list(ls))
学生年龄大于17的
lst = [{"id": 1, "name": 'alex', "age": 18},
{"id": 2, "name": 'wusir', "age": 16},
{"id": 3, "name": 'taibai', "age": 17}]
lis=filter(lambda u:u["age"]>17,lst)
print(list(lis))
#[{'id': 1, 'name': 'alex', 'age': 18}]
在Python中,map()
是一个内置函数,它对可迭代对象中的每个元素应用一个指定的函数,并返回一个迭代器,包含所有函数调用的结果。
map()
函数的基本语法如下:
pythonmap(function, iterable, ...)
参数解释:
function
: 这是你要应用于可迭代对象的函数。它可以是一个内置函数,例如 len()
或 str()
,也可以是用户自定义的函数。iterable
: 这是你要应用函数的可迭代对象,例如列表、元组、集合或字符串等。你可以在这里指定一个或多个可迭代对象。列表元素的平方:
ll = [1, 2, 3, 4, 5, 6, 7]
res = map(lambda x: x ** 2, ll) #
print(list(res)) # [1, 4, 9, 16, 25, 36, 49]
两个列表元素相加
lst1 = [1, 2, 3, 4, 5]
lst2 = [2, 4, 6, 8, 10]
print(list(map(lambda x, y: x+y, lst1, lst2)))
# [3, 6, 9, 12, 15]
zip() 拉链
在Python中,zip()
函数是一个内置函数,用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 *
号操作符向函数传递可迭代对象。
下面是一个基本的例子:
python# 定义两个列表
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
# 使用 zip 将这两个列表组合
zipped = zip(list1, list2)
# 输出 zipped,会得到一个元组的迭代器
print(zipped)
# 输出:
# 将迭代器转化为列表
zipped_list = list(zipped)
print(zipped_list) # 输出: [(1, 'a'), (2, 'b'), (3, 'c')]
这里,zip()
函数将list1
和list2
中的元素一一配对,然后返回一个迭代器。我们通过将迭代器转化为列表,可以获得一个包含所有配对元素的元组的列表。
注意,如果输入的可迭代对象长度不一致,那么zip()
函数将返回一个长度与最短的对象相同的迭代器。
例如:
python# 定义两个列表
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c', 'd']
# 使用 zip 将这两个列表组合
zipped = zip(list1, list2)
# 输出 zipped,会得到一个元组的迭代器
print(zipped)
# 输出:
# 将迭代器转化为列表
zipped_list = list(zipped)
print(zipped_list) # 输出: [(1, 'a'), (2, 'b'), (3, 'c')]
在这个例子中,由于list1
比list2
短,所以zip()
返回的列表长度与list1
的长度相同。