我需要比较两个dict并使它们相等(分配a->;b)。我还需要知道是否有任何值发生了变化,如果是这样,我需要运行一个计算开销很大的函数。我想出了一些有效的代码,但它看起来一点都不像python。你知道吗
有没有一种更像Python的方法??你知道吗
def sync_data(activity_update_response, existing_quote):
data_changed = False
if activity_update_response["source"]["firstName"] != existing_quote["origin"]["applicant"]["firstName"]:
activity_update_response["source"]["firstName"] = existing_quote["origin"]["applicant"]["firstName"]
data_changed = True
if activity_update_response["source"]["lastName"] != existing_quote["origin"]["applicant"]["surname"]:
activity_update_response["source"]["lastName"] = existing_quote["origin"]["applicant"]["surname"]
data_changed = True
# ( ... )
# repeat for 4 more fields
if data_changed:
# this is slow
recalculate_hashes(activity_update_response)
我认为将变量存储在
data_changed
中是一种很好的方法。我认为这看起来不像Python的原因是你在重复你自己(不是干巴巴的)。你知道吗我还没有测试过这个,但是你可以试着沿着这条线做更多的事情。你知道吗
收集要更新的密钥,然后更新dict并重新计算哈希值。python3.8中新的赋值表达式操作符很方便。你知道吗
为了使代码更具可读性,我建议:
我看不出还有更多的重构要做,因为这基本上就是您正在尝试做的。你知道吗
相关问题 更多 >
编程相关推荐