【发布时间】:2019-10-17 04:55:49
【问题描述】:
是否可以像Haskell 那样以编程方式构建理解来处理可变数量的参数?
例如,如何将字典的这个外积扩展到2个以上的字典:
def outer(f,g):
return lambda d1,d2: {f(k1,k2):g(v1,v2) for k1,v1 in d1.items() for k2,v2 in d2.items()}
给定:
d1 = {'a':1, 'b':2}
d2 = {'a':10, 'b':11, 'c':12}
以及这些使用变量 args 的辅助函数:
def string_join(*arg):
return ''.join(tuple(arg))
def arg_sum(*arg):
return sum(tuple(arg))
然后:
outer(string_join,arg_sum)(d1,d2)
{'aa': 11, 'ab': 12, 'ac': 13, 'ba': 12, 'bb': 13, 'bc': 14}
方便的理解可以扩展到变量 arg (d1,d2,d3...) 还是需要使用 for 循环?
【问题讨论】:
标签: python dictionary-comprehension