猿问

编写函数组合程序的更优雅的方式?

我试图解决以下问题:


my_function_composition(f,g)


输入:两个函数f和g,用字典表示,因此存在g◦f。


输出:代表函数g◦f的字典。


示例:给定f = {0:'a',1:'b'}并且g = {'a':'apple','b':'banana'},返回{0:'apple',1:'香蕉'}。


我找到了一个解决方案,但对我来说却很混乱:


def my_function_composition(f,g): return {list(f.keys())[i]: list(g.values())[i] for i in f if list(f.values()) == list(g.keys())}


# example/test

w = {0:'a', 1:'b', 2: 'c'}

v = {'a': 'apple', 'b':'banana', 'c': 'carrot'}


my_function_composition(w,v)

根据这本书,下一节将介绍循环问题,因此,我认为对此有一个优雅的单线解决方案。


注意:如果能为您的解决方案提供评论,我将不胜感激,因为我是python的新手


慕村225694
浏览 140回答 2
2回答

慕盖茨4494581

您可以使用dict理解:d = {k: g[v] for k, v in f.items()}d 变成:{0: 'apple', 1: 'banana'}
随时随地看视频慕课网APP

相关分类

Python
我要回答