python-3.x 检查dict中是否存在对象

j2cgzkjk  于 2023-08-08  发布在  Python
关注(0)|答案(1)|浏览(117)
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

字符串
所以我的问题是,除了第四种情况,为什么所有的返回都是假的?

soat7uwm

soat7uwm1#

成员测试是针对字典的“键”而不是值进行的。对于值,您可以执行以下操作:

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

字符串
但是请记住,它进行线性搜索,而不是O(1)的键。
对于最后一例:
boolint的子类,True等于1。(它们的哈希值当然是相同的)
基本上与以下效果相同:

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


和/或

a = {1: 10}
print(a[True]) # 10

相关问题