【问题标题】:Can I use lambda to accept two arguments in python and use it along with map我可以使用 lambda 在 python 中接受两个参数并将它与 map 一起使用吗
【发布时间】:2016-12-26 02:41:14
【问题描述】:

我想用python写一个函数来解决这个问题,一个单词列表和一个整数n,并返回比n长的单词列表,即

retlist=list()
def retword(list,n):
    for i in list:
        if len(i)>=n:  
            retlist.append(i)   
return retlist     

我可以使用这个函数轻松地做到这一点,但我想使用 map、filter、reduce 和 lambda 表达式来解决这个问题。像这样的

map(lambda list,len:list[i] if len(list[i])> len, (list,len))

【问题讨论】:

  • 回答标题中的问题:是的。但是你只需要使用过滤器,没有地图。你需要一个返回 True 或 False 的 lambda。您不能将if 放在函数调用中。如果您打算将其用作函数,也不能调用变量 len

标签: python lambda


【解决方案1】:

使用filter:

filter(lambda s: len(s) >= n, list)

【讨论】:

  • 我怎样才能在这里通过n
【解决方案2】:

如果a 是原始列表并且n 是所需的长度,则列表推导可以完成您需要的工作:

retlist = [i for i in a if len(i) >= n]

【讨论】:

    猜你喜欢
    • 2011-06-27
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    相关资源
    最近更新 更多