小儿无赖 发表于 2023-8-29 11:02:54

lambda表达式求助

power = {"吕布":999, "关羽":888, "刘备":666, "张飞":900, "赵云":789, "不二如是":999}

# 请 lambda 表达式和 filter() 函数配合,替换下面的代码
#greater = []
#for k, v in power.items():
#    if v > 800:
#      greater.append((k,v))
great = list(filter(lambda k, v: v > 800, for k, v in len(power)))


# 请 lambda 表达式和 filter() 函数配合,替换下面的代码
#print(greater)
#[('吕布', 999), ('关羽', 888), ('张飞', 900), ('不二如是', 999)]
如何替换为lambda表达式,同时希望讲一下filter和map的用法,谢谢

isdkz 发表于 2023-8-29 11:03:33

你好!要使用 lambda 表达式和 filter() 函数来替换给定的代码,可以按照以下方式进行修改:

power = {"吕布":999, "关羽":888, "刘备":666, "张飞":900, "赵云":789, "不二如是":999}

great = list(filter(lambda item: item > 800, power.items()))


在 lambda 表达式中, item代表字典中的每一个键值对, item表示值。我们使用filter()函数来筛选出满足条件的键值对,即值大于 800 的键值对。最后,将筛选结果转换为列表。

关于filter()函数和map()函数的用法,简要介绍如下:

·filter()函数用于过滤序列,根据指定的条件筛选出满足条件的元素,并返回一个新的迭代器。它的语法如下:
filter(function, iterable)

其中, function是一个返回布尔值的函数, iterable是一个可迭代对象。 filter()函数会遍历iterable中的每一个元素,对每个元素应用function ,如果函数返回True ,则保留该元素;如果函数返回False ,则过滤掉该元素。

·map()函数用于对序列中的每个元素进行操作,并返回一个新的迭代器,其中包含经过指定操作的元素。它的语法如下:
map(function, iterable)

其中, function是一个对每个元素进行操作的函数, iterable是一个可迭代对象。 map()函数会遍历iterable中的每一个元素,对每个元素应用function ,并将结果添加到新的迭代器中。

希望能对你有所帮助!如果还有其他问题,请随时提问。
页: [1]
查看完整版本: lambda表达式求助