2016-11-06 8 views
0

コードはこれで、出力は2ですが、なぜそれが出力であるのかわかりません。あなたは値が特定の番号であれば、あなたはあなたが重複する値を持っている場合は見つけることを期待しているキーを取得します保証はありませんチェックしているので、もしPython Dictionary Function

def dictTest(d, aVal): 
    for k in d: 
     if d[k] == aVal: 
      return k 
    return None 

lengths = {'one':3, 0:1, 'two':3} 
print(dictTest(lengths, 3)) 
+0

正確に理解できないことはありますか?コードを1行ずつ調べて、各ビットが何をしているかを見てみましょう。 –

+1

辞書は発注できません。何度も何度もコードを実行し続けると、最終的に1つが得られます。次に2つのコードを取得すると、もう一度コードを取得します。辞書は順序を保持しないためです。これが理由です:http://stackoverflow.com/questions/15479928/why-is-the-order-in-dictionaries-and-sets-任意的に – idjaw

+0

私は行ごとに行くと、私は参照してください:if index 0 in dictionary == 3その後返すk –

答えて

0

を辞書に要素を挿入するが、それらを注文されていません。コードを複数回実行すると、1と2のさまざまな結果が得られます。

その値に対応するすべてのキーを取得する場合は、リストに格納して戻すことができます。

+0

ご協力いただきありがとうございます –