kipopo 发表于 2021-1-25 23:17:55

天真的我和字典比对

本帖最后由 kipopo 于 2021-1-25 23:23 编辑

因为需求用的到字典比对
只取相同的keys
后来再网上找了个cmp 发现不能用是py2 的指令
当下心血来潮写了个自己的cmp
def cmp1(dict1,dict2):
    dictcmp = list(map(lambda key:key if key in dict2 else False,))
    return

后来才发现
还有更简单的...
def cmp2(dict1,dict2):
    if len(dict1) <len(dict2):
      dict1 ,dict2 = dict2,dict1
    return dict1.keys()-(dict1.keys()-dict2.keys())
print(cmp1(tasla,uta),'\n',cmp2(tasla,uta))

["3665','贸联-KY'", "2317','鸿海'", "2383','台光电'", "2313','华通'", "6282','康舒'", "2421','建准'", "2382','广达'", "2308','台达电'"]
{"6282','康舒'", "3665','贸联-KY'", "2382','广达'", "2313','华通'", "2421','建准'", "2308','台达电'", "2317','鸿海'", "2383','台光电'"}

两个都是回传 字典的keys
一个是 set
一个是 list

当我看到 set 的时候
我就知道我又有更容易的方法了…

def cmp3(dict1,dict2):
    set_dict1keys=set(dict1.keys())
    set_dict2keys=set(dict2.keys())
    return set_dict1keys & set_dict2keys

这样可以做更多功能 當 model = True 的時候 交集
當 model = False 的時候 差集
def cmp3(dict1,dict2,model=True):
    set_dict1keys=set(dict1.keys())
    set_dict2keys=set(dict2.keys())
    if model :
      return set_dict1keys & set_dict2keys
    elif model == False:
      return set_dict1keys - set_dict2keys
   

页: [1]
查看完整版本: 天真的我和字典比对