在Python中增加了不支持的集合?

Blu*_*ice 2 python set

在Python集中,为什么支持扩充删除元素但不支持添加?

例如,如果s是一个可变集:

s = set(['e', 'd', 'h', 's'])
Run Code Online (Sandbox Code Playgroud)

s -= set('ds')s = set(['e', 'h'])

但这不起作用s += set('pk')并导致结果TypeError.

Lau*_*low 10

您想要做的正确语法是

s |= set('ds')
Run Code Online (Sandbox Code Playgroud)

对于集,二进制运算符|,&以及^被用于集,交集和对称差,分别.我猜这个原因+不被认为是有效的集合操作,因为它不是在集合理论中使用的,-而是.

这三个二元运算符处理整数的方式与它们在集合上的工作方式之间存在很好的对称性:

set("1234")  & set("1456") == set(['1', '4'])
bin(0b111100 & 0b100111)   == '0b100100'
#     1234       1  456          1  4

set("14")    | set("456")  == set(['1', '5', '4', '6'])
bin(0b100100 | 0b000111)   == '0b100111'
#     1  4          456          1  456

set("14")    ^ set("456")  == set(['1', '5', '6'])
bin(0b100100 ^ 0b000111)   == '0b100011'
#     1  4          456          1   56
Run Code Online (Sandbox Code Playgroud)