如何解决如何使用 python 中的 reduce() 函数来搜索列表?
如何使用python中的reduce()函数在列表中搜索一个键?据我所知,它只对求和有用。
解决方法
为此您不需要 reduce
。只需使用:
key in my_list
,
您可以使用 reduce 来选择性地将符合您搜索条件的元素附加到结果列表中:
from functools import reduce
L = ['Apple','Banana','Orange','Grape']
sr = reduce(lambda a,s: a+[s]*('n' in s),L,[]) # items containing 'n'
print(sr)
['Banana','Orange']
初始值是一个空列表(lambda 的 a
参数)。如果 L 的每个元素(s
参数)包含“n”,则将其添加到结果列表中。 [s]*('n' in s)
将包含 s
的单项列表乘以条件检查的结果(s 中的“n”),得到一个空列表(不满足条件时)或包含 {{1 }}然后将其与累积结果 (s
) 连接
reduce(lambda x,y: x if x == 7 else y,some_list,None)
如果 7
包含 some_list
,这将返回 7
。这里的逻辑基本上是您将累加器用作结果的持有者。如果你找到了你正在寻找的任何东西,你就传递它,否则你传递“累加器”,因为它知道它已经包含找到的值或它以什么开头。
注意:我们不是来做你的课程的。展示您尝试过的方法。
,import functools
lis = [ 1,3,5,6,2,]
print ("The sum of the list elements is : ",end="")
print (functools.reduce(lambda a,b : a+b,lis))
print ("The maximum element of the list is : ",b : a if a > b else b,lis))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。