【发布时间】:2022-01-08 15:09:43
【问题描述】:
map(lambda k,v: self._value_store.update(k=v) if self.keyword_check(k) == True else print('bad parameter'), kwargs.keys(),kwargs.value)
keyword_check(k) 返回一个布尔值,具体取决于它是否在列表中。
这样做的目的是基本上更新每个参数的字典值和使用 kwargs 传入的值,但前提是参数名称存在于预定义列表中。
我不想使用 for 循环来解决这个问题。
我的问题是else 参数似乎是强制性的,但我不希望它做任何事情,除非关键字验证返回True 或False 时转到下一个可迭代对象。我尝试在 else 子句之后添加 pass,但 Python 不喜欢它。它适用于我放置的else print('bad parameter'),但这只是一个临时解决方案。当它是False 时,我可以在这里使用什么来执行/输出任何内容?
【问题讨论】:
-
好吧,通过使用 map,您将一个函数应用于可迭代的每个项目。你的函数应该总是返回一些东西,对吧?如果是同一个变换,则适当设置
-
这能回答你的问题吗? List comprehension with if statement
-
也许首先尝试使用普通功能而不是
lamba、map(my_function, kwargs)- 当它可以工作时,然后尝试将其转换为lambda。使用普通函数,您可以使用print()查看变量中的内容 - 这样您就可以对其进行调试。
标签: python dictionary lambda syntax