我正在尝试制作一个通用函数来减少这样的列表:
func(['a','b','c'],str.join) # --> ['a','b','c','ab','ac','bc','abc']
func(['a','b','c'],lambda: a,b:a+'x'+b) # --> ['a','b','c','axb','axc','bxc','axbxc']
我真的不知道该怎么做。我做了几次尝试,但没有一个成功。我很确定有一种方法可以用 reduce 来做到这一点,但我对使用这个功能不太满意。以下是一些尝试:
reduce(lambda a,b:[a,b,str(a)+str(b)],['a','b','c'])
reduce(str.join,['a','b','c'])
我想我在某处错过了递归。
我不是特别要求代码,欢迎任何帮助或建议。谢谢。