为了账号安全,请及时绑定邮箱和手机立即绑定

根据某个动态动作更新字典列表

根据某个动态动作更新字典列表

哆啦的时光机 2022-06-07 18:47:01
我在编写基于某些动态动作更新字典的方法时遇到困难我有一个字典列表,例如data_list = [{'x_data':1.987, 'y_data':25.9, 'plant_id':12}, {'x_data':1.024, 'y_data':19.9, 'plant_id':14}]action = "x_data+y_data"#or it may be "y_data/x_data" or "x_data*y_data" and "1/(x_data*y_data").output : [{z_data:27.887 'plant_id':12}, {z_data:20.925, 'plant_id':14}]所以,我想要一个采用列表和操作并提供更新列表的方法。update_dictionaries(data_list, action):    return updated_list谢谢你。
查看完整描述

2 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

使用 pythons eval 函数https://docs.python.org/3/library/functions.html#eval


您应该能够使用以下示例来修改您的代码以执行您想要的操作


def my_func(x,y,action):

    try:

        z = eval(action)

    except:

        z = None

    return z



my_func(1,2,"x+y")

#3


my_func(2,3,"x*y")

#6

希望这可以帮助。


查看完整回答
反对 回复 2022-06-07
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

def update_dictionaries(data_list, action):

action = action.replace("x_data","dic['x_data']")

action = action.replace("y_data","dic['y_data']")

for dic in data_list:

    ans = eval(action)

    dic['z_data']=ans

    dic.pop('x_data',None)

    dic.pop('y_data',None)

return data_list


查看完整回答
反对 回复 2022-06-07
  • 2 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信