检查字典中是否存在对象

问题描述 投票:0回答:1
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

所以我的问题是为什么除了第四种情况之外都返回 False ?

python python-3.x dictionary boolean-expression
1个回答
0
投票

成员资格测试是针对字典的“键”而不是值进行的。对于你可以做的价值观:

a = {1: 4}
print(4 in a.values())

但请记住,它执行的是线性搜索,而不是键搜索,时间复杂度为 O(1)。

对于最后一个案例:

bool
int
的子类,并且
True
等于
1
。 (他们的哈希值当然是相同的)

与以下效果基本相同:

s = {1, True}
print(len(s)) # 1

a = {1: 10}
print(a[True]) # 10
© www.soinside.com 2019 - 2024. All rights reserved.