tch*_*rty 0 python dictionary functional-programming python-3.x
我试图看看我是否可以在Python中实现一些非常懒惰的东西.
我有一个字典理解,其中值是一个元组.我希望能够通过使用元组的第一个条目来创建元组的第二个条目.
一个例子应该有帮助.
dictA = {'a': 1, 'b': 3, 'c': 42}
{key: (a = someComplexFunction(value), moreComplexFunction(a)) for key, value in dictA.items()}
Run Code Online (Sandbox Code Playgroud)
是否有可能moreComplexFunction在元组的第一个条目中使用计算?
您可以在单元素元组上添加第二个循环:
{key: (a, moreComplexFuntion(a)) for key, value in dictA.items()
for a in (someComplexFunction(value),)}
Run Code Online (Sandbox Code Playgroud)
这使您可以访问someComplexFunction(value)值表达式中的输出,但这相当丑陋.
就个人而言,我会在这种情况下转向常规循环:
dictB = {}
for key, value in dictA.items():
a = someComplexFunction(value)
dictB[key] = (a, moreComplexFunction(a))
Run Code Online (Sandbox Code Playgroud)
并完成它.