第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python 字典cmp()函數(shù)問題

python 字典cmp()函數(shù)問題

BIG陽 2019-02-21 23:54:33
dict1 = {'Name': 'e', 'Age': 30}; dict2 = {'Name': 'z', 'Age': 27}; print "Return Value : %d" % cmp (dict1, dict2) 為什么會返回1呢,這個比較到底是什么回事?當字典1關鍵字AGE的值大于28時就開始大于字典2了,不是e小于z么?
查看完整描述

1 回答

?
弒天下

TA貢獻1818條經驗 獲得超8個贊

stackoverflow上有關dict的cmp的實現(xiàn),代碼如下:

def smallest_diff_key(A, B):
    """return the smallest key adiff in A such that A[adiff] != B[bdiff]"""
    diff_keys = [k for k in A if A.get(k) != B.get(k)]
    return min(diff_keys)

def dict_cmp(A, B):
    if len(A) != len(B):
        return cmp(len(A), len(B))
    adiff = smallest_diff_key(A, B)
    bdiff = smallest_diff_key(B, A)
    if adiff != bdiff:
        return cmp(adiff, bdiff)
    return cmp(A[adiff], b[bdiff])

先比較字典的長度,如果相等。再比較adiff(在A中與B值不相等的最小key)和bdiff(在B中與A值不相等的最小key),再等則比較兩者的值。

>>> dict1 = {'Name': 'e', 'Age': 30, 'Addr':'hust'};
>>> dict2 = {'Name': 'z', 'Age': 27, 'Adds':'hust'};
>>> print "Return Value : %d" % cmp (dict1, dict2)
Return Value : -1

長度相等,直接比較'Addr'和'Adds',所以dict1 < dict2

>>> dict1 = {'Name': 'e', 'Age': 30, 'Addr':'hust'};
>>> dict2 = {'Name': 'z', 'Age': 27, 'Addr':'whu'};
>>> print "Return Value : %d" % cmp (dict1, dict2)
Return Value : -1
>>> min('Name', 'Age', 'Addr')
'Addr'

長度相等,key完全相等,比較value不等keys('Name','Age','Addr')中的最小key('Addr')的value('hust','whu'),所以dict1 < dict2

詳情見stackoverflow

查看完整回答
反對 回復 2019-03-01
  • 1 回答
  • 0 關注
  • 501 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號