程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了用来自另一个字典的相应键值映射替换字典的值列表大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决用来自另一个字典的相应键值映射替换字典的值列表?

开发过程中遇到用来自另一个字典的相应键值映射替换字典的值列表的问题如何解决?下面主要结合日常开发的经验,给出你关于用来自另一个字典的相应键值映射替换字典的值列表的解决方法建议,希望对你解决用来自另一个字典的相应键值映射替换字典的值列表有所启发或帮助;

我有这两本字典:

Dict_employee_ID = {'0': ['0','1','2'],'1': ['0','2']}    

Dict_ID_Shift = {'0': ['L','D'],'1': ['D','E','2': ['None','Any','Any']}

我的目标是当 Dict_employee_ID 的键对应于 Dict_ID_Shift 的值时,将字典 Dict_ID_Shift 的值替换为字典 Dict_employee_ID 的值>

预期的输出应该是这样的

{
    '0': [['L',['D',['None','Any']],'1': [['L','Any']]
}

我尝试过使用intersection()方法,但没有得到预期的结果,你的策略是什么?谢谢

解决方法

当在 Dict_ID_Shift 中找不到时,您没有提到您希望 Dict_employee_ID 中的键的值等于什么,所以我假设您希望它保留其旧值。下面的代码应该会给你你正在寻找的结果:

Dict_ID_Shift_Values = list(Dict_ID_Shift.values())
for key in Dict_employee_ID:
    if key in Dict_ID_Shift:
        Dict_employee_ID[key] = Dict_ID_Shift_Values
,

您可以使用字典理解并将值重新分配给 Dict_employee_ID 为:

Dict_employee_ID = {'0': ['0','1','2'],'1': ['0','2']}
Dict_ID_Shift = {'0': ['L','D'],'1': ['D','E','2': ['None','Any','Any']}

Dict_employee_ID = {k: [Dict_ID_Shift[e] for e in v] for k,v in Dict_employee_ID.items()}

其中 Dict_employee_ID 将保存值:

{
    '0': [['L',['D',['None','Any']],'1': [['L','Any']]
}

如果你想替换现有的字典,那么你也可以编写显式的 for 循环来实现:

for k,v in Dict_employee_ID.items():
    Dict_employee_ID[k] = [Dict_ID_Shift[e] for e in v]
,

遍历字典中的值,并相应地遍历每个值,使用 Dict.get 检查成员资格:

for sub_list in Dict_employee_id.values():
    for i,val in enumerate(sub_list):
        # Second argument will keep the value the same if it isn't
        # in the Dictionary
        sub_list[i] = Dict_id_shift.get(val,val)

大佬总结

以上是大佬教程为你收集整理的用来自另一个字典的相应键值映射替换字典的值列表全部内容,希望文章能够帮你解决用来自另一个字典的相应键值映射替换字典的值列表所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: