正如我最初预期的那样, adict
和 a的并集set
给出TypeError
:
>>> {1:2} | {3}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for |: 'dict' and 'set'
然而,令人惊讶的是, a和的dict
并集dict.keys()
返回 a set
:
>>> {1:2} | {3:4}.keys()
{1, 3}
set.union(dict)
也有这种行为:
>>> {3}.union({1:2})
{1, 3}
但set | dict
没有,并且行为就像dict | set
:
>>> {3} | {1:2}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for |: 'set' and 'dict'
这里发生了什么?为什么在某些情况下允许使用 dict 和 set 的并集,但在其他情况下不允许,为什么在允许的情况下返回一组键?