使用默认值python设置dictionary的缺失值

2024-05-15 10:23:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个defaultdict(list)和另一个普通字典

A = {1:["blah", "nire"], 2:["fooblah"], 3:["blahblah"]}
B = {1: "something" ,2:"somethingsomething"}

现在让我们假设我有这样的东西

^{pr2}$

现在,首先我想找出B中的键从A中丢失了什么(比如3丢失了) 然后将这些键设置为值missing_value? Python的方法是什么? 谢谢


Tags: 方法字典valuesomethinglistblahmissingdefaultdict
3条回答

有一种方法:

def test():
    A = {1:"blah", 2:"fooblah", 3:"blahblah"}
    B = {1: "something" ,2:"somethingsomething"}
    keys=set(A.keys()).difference(set(B.keys()))
    for k in keys:
        B[k]="missing"
    print (B)

解决方案是遍历A并在必要时更新B。它将具有O(len(A))的复杂性:

for key in A:
    if key not in B:
        B[key] = missing_value

您可以使用^{}

for k in A:
    B.setdefault(k, "fill_this")

这与较长的基本相同:

^{pr2}$

但是,由于setdefault只需要查找每个k一次,setdefault比这个“测试集”解决方案要快。在

或者(可能更慢),确定设置差,并设置(没有双关语)这些值:

for k in set(A).difference(B):
    B[k] = "fill_this"

相关问题 更多 >