我正在尝试创建一个包含lambda函数的字典,该函数可以有条件地基于键中的第二项插入一个值。
Example:
wts = defaultdict(lambda x: if x[1] == somevalue then 1 else 0)
最佳答案
Python中的conditional expression看起来像:
then_expr if condition else else_expr
在您的示例中:
wts = defaultdict(lambda x: 1 if x[1] == somevalue else 0)
正如khelwood在评论中指出的那样,
defaultdict
的工厂函数不带参数。您必须直接覆盖dict.__missing__
:class WTS(dict):
def __missing__(self, key):
return 1 if key[1] == somevalue else 0
wts = WTS()
或更可读:
class WTS(dict):
def __missing__(self, key):
if key[1] == somevalue:
return 1
else:
return 0
关于python - 如何使用defaultdict创建带有lambda函数的字典?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25954347/