2024-05-15 10:23:56 发布
网友
我有一个defaultdict(list)和另一个普通字典
A = {1:["blah", "nire"], 2:["fooblah"], 3:["blahblah"]} B = {1: "something" ,2:"somethingsomething"}
现在让我们假设我有这样的东西
现在,首先我想找出B中的键从A中丢失了什么(比如3丢失了) 然后将这些键设置为值missing_value? Python的方法是什么? 谢谢
missing_value
有一种方法:
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))的复杂性:
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")
这与较长的基本相同:
但是,由于setdefault只需要查找每个k一次,setdefault比这个“测试集”解决方案要快。在
setdefault
k
或者(可能更慢),确定设置差,并设置(没有双关语)这些值:
for k in set(A).difference(B): B[k] = "fill_this"
有一种方法:
解决方案是遍历
A
并在必要时更新B
。它将具有O(len(A))
的复杂性:您可以使用^{} :
这与较长的基本相同:
^{pr2}$但是,由于
setdefault
只需要查找每个k
一次,setdefault
比这个“测试集”解决方案要快。在或者(可能更慢),确定设置差,并设置(没有双关语)这些值:
相关问题 更多 >
编程相关推荐