python字典键视图上的受限制的集合操作

Dur*_*tta 5 python set

让我们看下面的代码片段:

d = {1:1}
keys = d.keys()

print(keys & {1,2,3})# {1}
d[2] = 2
print(keys & {1,2,3}) # {1,2} # keys() is a view/reference
print({1,2}.issubset({1,2,3})) # True
print(keys.issubset({1,2,3})) # 'dict_keys' object has no attribute 'issubset'
Run Code Online (Sandbox Code Playgroud)

字典视图对象的官方文档中提到:

键视图设置类似,因为它们的条目是唯一且可清除的...然后这些设置操作可用("其他"指的是另一个视图或一组):[&,|,^,^]

如果键设置为类似,为什么它们上的设置操作仅限于这四个中缀操作.例如,为什么不允许使用issupersetissubset不允许无副作用的操作?

use*_*ica 6

例如,为什么不是无副作用的操作issupersetissubset不允许操作?

他们是; 你只需要使用>=<=运算符:

print(keys <= {1, 2, 3})
Run Code Online (Sandbox Code Playgroud)

他们也支持isdisjoint方法形式,因为它没有运算符:

print(keys.isdisjoint({1, 2, 3}))
Run Code Online (Sandbox Code Playgroud)