2013-07-25 40 views
2

嘿傢伙我下週要參加考試,而且我需要用字典改進。我有這個代碼,我不知道如何去做。我們班正在用python語言編寫代碼。版本3(Python 3)如何從ditcionary獲得多個值

就像說我有一本字典,並且我想返回true,如果該字典有兩個或更多指向相同值的鍵,否則返回false。

>>> duplicate({'a': 9, 'b': '9', 'c': 7, 9: True}) 
False 
>>> duplicate({'a': 9, 'b': 9, 'c': 7}) 
True 
''' 

我給了它一個鏡頭,但我不認爲它的權利。

def duplicate(dict1): 
    for a key, value in dict1.items(): 
     dict1[value] = key 
    return dict1 

像我沒有得到如何找到這兩個鍵值。

請幫幫忙我真的很感激它。任何提示或任何解決方案會更好。

+1

爲什麼在第一種情況下假的?有兩個鍵('a'和'b'),它們都具有相同的值。根據你的描述,算法不應該在這裏返回「True」嗎? – inspectorG4dget

+1

@ inspectorG4dget:在第一個字典'a'中:9是一個整數,而'b':'9'是一個字符/字符串。 – Ma3x

+0

@ Ma3x:感謝您澄清。之前沒有看到! – inspectorG4dget

回答

0

快速和骯髒的:

def has_dupes(x): 
    z = list() 
    for val in x.values(): 
     if val in z: 
      return True 
     z.append(val) 
    return False 

HTH

0

很簡單。

def duplicate(A): return len(A) != len(set(A.values())) 
0
def duplicate(x): 
    return len(x.values()) > len(set(x.values()))