+ 1
Default Value in Dictioary
pairs = {1: "apple", "orange": [2, 3, 4], True: False, None: "True", } print(pairs.get(1, "not in dictionary")) print(pairs.get("orange", "not in dictionary")) Expected Output: "apple" [2, 3, 4] Actual Output: False [2, 3, 4] Why is it coming False instead of apple?
1 Answer
+ 5
The problem is that in Python there is no real True/False value type, and 1 is strictly equal to True, so in reality, when you declare your array, you implicitly override the value of key '1' with the assignment of 'True' key... Try to:
print(pairs)
would output something like ( unordered dict ):
{'orange': [2, 3, 4], 1:False, None: 'True'}
However, you can define a '1' key as string instead of int, whithout overriding or be overrided by a True/1 key value:
pairs = {'1': "apple",
"orange": [2, 3, 4],
True: False,
None: "True",
}
print(pairs.get('1', "not in dictionary"))
print(pairs.get("orange", "not in dictionary"))
The output is what's expected, and:
print(pairs)
...should output:
{'1':'apple', 'orange': [2, 3, 4], True:False, None: 'True'}