【发布时间】:2023-03-31 12:03:01
【问题描述】:
test_input = {"oneone": 1, "twotwo": 2, "threethree": 3}
def testmethod(no):
print(f"Number {no}")
return True, f"Number {no}"
不使用lambda 和map:
d = {}
for k, v in test_input.items():
ret, out = testmethod(v)
if ret:
d[k] = out
我尝试使用lambda 和map 进行迭代:
>>> dict(map(lambda ref: testmethod(ref), list(test_input.values())))
{True: 'Number 3'}
使用map 和lambda 的预期输出:
{'oneone': 'Number 1', 'twotwo': 'Number 2', 'threethree': 'Number 3'}
【问题讨论】:
-
testmethod()总是返回True作为元组的第一个元素。您将此值用作字典中的键,并且在每次迭代时覆盖相应的字典值。 -
@bb1。你没有覆盖:这是一本新字典。另外,假装这只是一个例子
-
@MadPhysicist 字典是新的,但它是通过迭代元组
(True, some_value)构建的。
标签: python dictionary lambda