a = {1 : 4}
print(4 in a) # case 1: False
a = {1 : 's'}
print('s' in a) # case 2: False
a = {1 : None}
print(None in a) # case 3: False
a = {1: True}
print(True in a) # case 4: True
字符串
所以我的问题是,除了第四种情况,为什么所有的返回都是假的?
a = {1 : 4}
print(4 in a) # case 1: False
a = {1 : 's'}
print('s' in a) # case 2: False
a = {1 : None}
print(None in a) # case 3: False
a = {1: True}
print(True in a) # case 4: True
字符串
所以我的问题是,除了第四种情况,为什么所有的返回都是假的?
1条答案
按热度按时间soat7uwm1#
成员测试是针对字典的“键”而不是值进行的。对于值,您可以执行以下操作:
字符串
但是请记住,它进行线性搜索,而不是O(1)的键。
对于最后一例:
bool
是int
的子类,True
等于1
。(它们的哈希值当然是相同的)基本上与以下效果相同:
型
和/或
型