为什么 python 中 "set" 对象中的 "add" 函数不可能使用 "="?



python中,add用于将项目添加到set对象:

set_object = {'apple', 'orange'}
set_object.add('pear')

但是,new_object = set_object.add('pear')并不等同于set_object.add('pear')

那么为什么会这样,是否有一种等效的方法将new_object分配给变量?如果我不想修改原始set_object,我该怎么办?

这也行不通

new_object = set_object + {'pear'}

目前,我似乎必须做:

set_object = {'apple', 'orange'}
set_object.add('pear')
new_object = set_object
set_object = {'apple', 'orange'}

有没有更有效的方法?

您可以使用

union函数或'|'运算符将新set附加到现有。

set_object = {'apple', 'orange'}
new_object = set_object | {'pear'}

set_object = {'apple', 'orange'}
new_object = set_object.union({'pear'})
这与

set无关。如果您执行以下操作,您将再次获得None值。

a = [1, 2]
b = a.append(3)
print(b)
# None

这就是为什么你会得到None,当你喜欢:

new_object = set_object.add('pear')
print(new_object)
# None

你只是使用了错误的运算符。 +不是为集合定义的; |是。

new_object = set_object | {'pear'}

最新更新