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

时间:2016-08-03 23:45:15

标签: 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'

dictionary view objects的官方文件中提及:

  

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

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

1 个答案:

答案 0 :(得分:6)

  

例如,为什么不允许使用issubset>=操作等无副作用的操作?

他们是;您只需使用<=print(keys <= {1, 2, 3}) 运算符:

isdisjoint

他们还以方法形式支持print(keys.isdisjoint({1, 2, 3})) ,因为它没有运算符:

int64_t value1; int32_t value2;