Pythonシェルに式{1: 'a', True: 'b', 1.0: 'c', 1.00: 'd'}
を入力すると、私は{1: 'd'}
に戻ります。しかし、私が{1: 'a', True: 'b', 1.0: 'c', 1.00: 'd'} [True]
と書くと、通訳者は私に'd'
を返します。この辞書評価の仕組みは分かりません。"{1: 'a'、True: 'b'、1.0: 'c'、1.00: 'd'}"は "{1: 'd'}"と評価されますか?
0
A
答えて
3
Pythonは==
演算子と同じ平等テストを使用します。使用しているすべてのキー(1
、True
、1.0
、および1.00
)は、互いに等しいと比較されます。あなたの言葉で起こっていることは、最初のキーを保持していて、そのキーに関連付けられた値をそれに等しいすべての後続キーについて更新することです。キー値が同じではないため(1.0
と1.00
を除く)、これらは「等しい」ため、少し直感的ではありません。
同様に、{1: 'd'}[True]
は、True == 1
であるため、'd'
と評価されます。
+0
ありがとう!私はcsvファイルを解析していたので、私は辞書に値が混在してしまったので、これについて本当に混乱しました。私はそれを '{1: 'a'、True: 'b'、1.0: 'c'、1.00: 'd'}'にしました。 –
1
値1、True、1.0および1.00はすべて等しい(1.0と1.00はまったく同じ値です)。したがって、それらはすべて辞書内の同じキーと見なされます。複数の等しいキーを持つdictを持つことはできません。
1
Pythonは辞書の重複キーをサポートしていません。
この例では、すべてのキーは同じです(True==1
はTrue
と評価されます)。
したがって、Pythonは最後のものを除くすべてのキー値を破棄します。
関連する問題
- 1. ["a"、 "b"、 "c"、 "d"]
- 2. [(a、b)、(c、d)]と[[a、b]、[c、d]]の違いは何ですか?
- 3. SQL ServerのA $$$ B $$$$$$ C $$$$$$$$ D文字列からA $ B $ C $ DまたはA%B%C%Dを取得するにはどうすればよいですか?
- 4. 5,2,20,6,6からB、A、D、C、C
- 5. SonarQube A、B C、DおよびEの評価はどのように計算されますか?
- 6. なぜ$((true == false))はbashで1と評価されますか?
- 7. tmuxの 'C-b d'と 'C-b D'の相違点
- 8. `letter ==" A "または" a "は常にTrueと評価されますか?
- 9. カスタムレンジステップ(a - b - c - d - .. z)を持つレンジスライダ
- 10. !strcmp(a、b)はいつ真と評価されますか?
- 11. 実行非常に大きなリストA、C、A、D、A、B、C、D与えられたリスト
- 12. 弾性検索クエリ:(AまたはB)と(CまたはD)
- 13. 関数I(a、b、c、d)の積分の4次元最小値(a、b、c、d)を求める
- 14. SVG transform =幅と高さの行列(a、b、c、d、e、f)
- 15. C言語でif(!( - 1))がtrueまたはfalseに評価されますか?
- 16. F#でのパターンマッチングの使い方["a"; "b"; "c"; "a"; "d"; "e"]を["abca"; "d"; "e"]
- 17. jqueryセレクタ、 "a + b + c + d"はどのように解釈されますか
- 18. ブール代数を使って式を最小化する方法は?</p> <p>Y =/A/B/C/D +/A/B/CD +/AB/CD + A/B/C/D + A:ここ
- 19. Math.abs(a-b) - Math.abs(c-d)の実装は高速ですか?
- 20. ヘルプRegEx( "\ b \ d {6}([] {1,15})\ d {7} \ b")
- 21. "(oddNumber And 1)= 1"がtrueに評価されるのはなぜですか?
- 22. ORMlite QueryBuilderここでAとBとCと(DまたはEまたはF)
- 23. numpyの1-Dのnumpyのアレイのドット(b)および(* B).SUM()
- 24. Matlabの 'abcd'を{'a' 'b' 'c' 'd'}に変換します
- 25. {2,3 ... 9、A、B、C、D、1、E、F、0}の順にカスタマイズされた並べ替え
- 26. A + B = C + Dを満たす値のインデックスを見つける
- 27. 検索方法:%、%1 $ s、%3 $ d、%d
- 28. のNeo4jは、そこにノードAの数、B、C、D 親
- 29. x86 64ビットでA + B-C + Dを追加する
- 30. に続くA-B-C-D-E-Fの配列。 R
辞書のキーは一意でなければなりません。同じキーを使用する場合は、最後のキーだけが残ります。 – eyllanesc